Function std.socket.Socket.select
Wait for a socket to change status. A wait timeout of Duration or
TimeVal, may be specified; if a timeout is not specified or the
TimeVal is null, the maximum timeout is used. The TimeVal
timeout has an unspecified value when select returns.
static int select
(
SocketSet checkRead,
SocketSet checkWrite,
SocketSet checkError,
Duration timeout
) @trusted;
static int select
(
SocketSet checkRead,
SocketSet checkWrite,
SocketSet checkError
) @safe;
static int select
(
SocketSet checkRead,
SocketSet checkWrite,
SocketSet checkError,
TimeVal* timeout
) @trusted;
Returns
The number of sockets with status changes, 0 on timeout,
or -1 on interruption. If the return value is greater than 0,
the SocketSets are updated to only contain the sockets having status
changes. For a connecting socket, a write status change means the
connection is established and it's able to send. For a listening socket,
a read status change means there is an incoming connection request and
it's able to accept.
SocketSet's updated to include only those sockets which an event occured.
For a connect()ing socket, writeability means connected.
For a listen()ing socket, readability means listening
Winsock; possibly internally limited to 64 sockets per set.
Returns
the number of events, 0 on timeout, or -1 on interruption
Authors
Christopher E. Miller, David Nadlinger, Vladimir Panteleev