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