This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for wiki NetworkPortsCowan version 5
author
cowan
comment
ipnr
198.185.18.207
name
NetworkPortsCowan
readonly
0
text
== Network Ports ==
Network ports are a mild abstraction of TCP sockets. They are a subtype of ports.
This proposal depends on SettingsListsCowan. Settings lists passed to procedures in this proposal MUST NOT contain the `path` key, but MAY contain the keys `host` and `port` defined below.
== Client Procedures ==
The procedures in this section take a specification for a TCP socket and return a input/output port connected to the socket.
`(open-network-client `''settings-list''`)`
Returns an input/output port connected to the host and port specified by ''settings-list''.
== Server Procedures ==
`(make-network-listener `''settings-list''`)`
Returns an opaque ''listener'' object (which may be of any type) that will accept connections to the port and host (which must be a local address) specified in ''settings-list''. If the host is not specified, the listener will accept connections that are made to ''port'' on any local address.
`(open-network-server `''listener''`)`
Waits for a client to connect to ''listener'', and returns an input/output port connected to that client. When the port is closed, this procedure may be invoked again on the same listener.
`(close-network-listener `''listener''`)`
Close ''listener'' and abandon any further attempts to listen for collections.
== Settings-list Keys ==
Implementations MUST support the following keys:
`host`::
Specifies the host as a string. It may be an IPv4 dotted-decimal address, an IPv6 colon-hexadecimal address if supported by the operating system, or a host name to be looked up according to whatever operating system conventions exist, if any. Appropriate strings may refer to broadcast or multicast addresses.
`port`::
Specifies the port number as an exact integer or the port name as a string. The meaning of a string is implementation-dependent, but is intended to be a standardized service name.
time
2012-06-17 14:15:46
version
5