accept
The Windows Sockets
accept function accepts a connection on a socket.
SOCKET accept (
SOCKET s,
|
|
struct sockaddr FAR* addr,
|
|
int FAR* addrlen
|
|
);
|
|
Parameters
s
[in] A descriptor identifying a socket which is listening for connections
after a
listen.
addr
[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
created.
addrlen
[out] An optional pointer to an integer which contains the length of the
address
addr.
Remarks
This routine extracts the first connection on the queue of pending connections
on
s, 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 and/or
addrlen are equal to NULL, then no information about the remote address of the
accepted socket is returned.
Return Values
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.
Error Codes
WSANOTINITIALISED
| A successful WSAStartup must occur before using this FUNCTION.
|
WSAENETDOWN
| The network subsystem has failed.
|
WSAEFAULT
| The addrlen argument is too small or addr is not a valid part of the user address space.
|
WSAEINTR
| The (blocking) call was canceled through WSACancelBlockingCall.
|
WSAEINPROGRESS
| A blocking Windows Sockets 1.1 call is in progress, or the service provider is
still processing a callback function.
|
WSAEINVAL
| listen was not invoked prior to accept.
|
WSAEMFILE
| The queue is nonempty upon entry to accept and there are no descriptors available.
|
WSAENOBUFS
| No buffer space is available.
|
WSAENOTSOCK
| The descriptor is not a socket.
|
WSAEOPNOTSUPP
| The referenced socket is not a type that supports connection-oriented service.
|
WSAEWOULDBLOCK
| The socket is marked as nonblocking and no connections are present to be
accepted.
|
See Also
bind,
connect,
listen,
select,
socket,
WSAAsyncSelect,
WSAAccept
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database