When a server receives a connection request, it can complete the
connection by accepting the request. Use the function
to do this.
A socket that has been established as a server can accept connection
requests from multiple clients. The server's original socket
does not become part of the connection; instead,
makes a new socket which participates in the connection.
accept returns the descriptor for this socket. The server's
original socket remains available for listening for further connection
The number of pending connection requests on a server socket is finite.
If connection requests arrive from clients faster than the server can
act upon them, the queue can fill up and additional requests are refused
ECONNREFUSED error. You can specify the maximum length of
this queue as an argument to the
listen function, although the
system may also impose its own internal limit on the length of this
accept function waits if there are no connections pending,
unless the socket socket has nonblocking mode set. (You can use
select to wait for a pending connection, with a nonblocking
socket.) See section File Status Flags, for information about nonblocking
The addr and length-ptr arguments are used to return information about the name of the client socket that initiated the connection. See section Socket Addresses, for information about the format of the information.
Accepting a connection does not make socket part of the
connection. Instead, it creates a new socket which becomes
connected. The normal return value of
accept is the file
descriptor for the new socket.
accept, the original socket socket remains open and
unconnected, and continues listening until you close it. You can
accept further connections with socket by calling
If an error occurs,
-1. The following
errno error conditions are defined for this function:
accept function is not allowed for sockets using
connectionless communication styles.
Go to the first, previous, next, last section, table of contents.