The Windows Sockets accept
function accepts a connection on a socket.
SOCKET accept (
| SOCKET s,
| struct sockaddr FAR* addr,
| int FAR* addrlen
[in] A descriptor identifying a socket which is listening for connections
after a listen
[out] An optional pointer to a buffer which receives the address of the
connecting entity, as known to the communications layer. The exact format of the addr
argument is determined by the address family established when the socket was
[out] An optional pointer to an integer which contains the length of the
This routine extracts the first connection on the queue of pending connections
, creates a new socket and returns a handle to the new socket. The newly
created socket has the same properties as s
including asynchronous events registered with WSAAsyncSelect
or with WSAEventSelect
, but not
including the listening socket's group ID, if any. If no pending connections
are present on the queue, and the socket is not marked as nonblocking, accept
blocks the caller until a connection is present. If the socket is marked
nonblocking and no pending connections are present on the queue, accept
returns an error as described below. The accepted socket cannot be used to
accept more connections. The original socket remains open.
The argument addr
is a result parameter that is filled in with the address of the connecting
entity, as known to the communications layer. The exact format of the addr
parameter is determined by the address family in which the communication is
occurring. The addrlen
is a value-result parameter; it should initially contain the amount of space
pointed to by addr
; on return it will contain the actual length (in bytes) of the address
returned. This call is used with connection-oriented socket types such as
SOCK_STREAM. If addr
are equal to NULL, then no information about the remote address of the
accepted socket is returned.
If no error occurs, accept
returns a value of type SOCKET which is a descriptor for the accepted socket.
Otherwise, a value of INVALID_SOCKET is returned, and a specific error code
can be retrieved by calling WSAGetLastError
The integer referred to by addrlen
initially contains the amount of space pointed to by addr
. On return it will contain the actual length in bytes of the address returned.
||A successful WSAStartup must occur before using this FUNCTION.
||The network subsystem has failed.
||The addrlen argument is too small or addr is not a valid part of the user address space.
||The (blocking) call was canceled through WSACancelBlockingCall.
||A blocking Windows Sockets 1.1 call is in progress, or the service provider is
still processing a callback function.
||listen was not invoked prior to accept.
||The queue is nonempty upon entry to accept and there are no descriptors available.
||No buffer space is available.
||The descriptor is not a socket.
||The referenced socket is not a type that supports connection-oriented service.
||The socket is marked as nonblocking and no connections are present to be
- Software for developers
Software for Android Developers
- More information resources
Unix Manual Pages