Vocabularyio.socketsInputs and outputs| addrspec | an address specifier |
| encoding | an encoding descriptor |
| server | a handle |
Word descriptionBegins listening for network connections to a local address. Server objects respond to two words:
| • | dispose - stops listening on the port and frees all associated resources |
| • | accept - blocks until there is a connection, and returns a stream of the encoding passed to the constructor |
NotesTo start a TCP/IP server which listens for connections from any host, use an address specifier returned by the following code, where 1234 is the desired port number:
f 1234 <inet> resolve-host
To start a server which listens for connections from the loopback interface only, use an address specifier returned by the following code, where 1234 is the desired port number:
"localhost" 1234 <inet> resolve-host
Since
resolve-host can return multiple address specifiers, your server code must listen on them all to work properly. The
io.servers vocabulary can be used to help with this.
To start a TCP/IP server which listens for connections on a randomly-assigned port, set the port number in the address specifier to 0, and then read the
addr slot of the server instance to obtain the actual port number it is listening on:
f 0 <inet4> ascii <server>
[ addr>> . ] [ dispose ] bi
T{ inet4 f "0.0.0.0" 58901 }
ErrorsThrows an error if the address is already in use, or if it if the system forbids access.
Definition