|
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
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime without manual coding. Full C# source codes are available More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|