socket_accept

Accepts a connection on a socket

&reftitle.description; ``Socket``false```socket_accept` `Socket` `socket`

After the socket `socket` has been created using `socket_create`, bound to a name with `socket_bind`, and told to listen for connections with `socket_listen`, this function will accept incoming connections on that socket. Once a successful connection is made, a new `Socket` instance is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, `socket_accept` will block until a connection becomes present. If `socket` has been made non-blocking using `socket_set_blocking` or `socket_set_nonblock`, &false; will be returned.

The `Socket` instance returned by `socket_accept` may not be used to accept new connections. The original listening socket `socket`, however, remains open and may be reused.

&reftitle.parameters;

`socket`

- A `Socket` instance created with `socket_create`.

&reftitle.returnvalues;

Returns a new `Socket` instance on success, or &false; on error. The actual error code can be retrieved by calling `socket_last_error`. This error code may be passed to `socket_strerror` to get a textual explanation of the error.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | On success, this function returns a `Socket` instance now; previously, a `resource` was returned.

&reftitle.seealso;

- `socket_connect`
- `socket_listen`
- `socket_create`
- `socket_bind`
- `socket_strerror`