listen - listen for socket connections and limit the queue of incoming connections
#include <sys/socket.h> int listen(int socket, int backlog);
The listen() function marks a connection-mode socket, specified by the socket argument, as accepting connections, and limits the number of outstanding connections in the socket's listen queue to the value specified by the backlog argument.
If listen() is called with a backlog argument value that is less than 0, the function sets the length of the socket's listen queue to 0.
The implementation may include incomplete connections in the queue subject to the queue limit. The implementation may also increase the specified queue limit internally if it includes such incomplete connections in the queue subject to this limit.
Implementations may limit the length of the socket's listen queue. If backlog exceeds the implementation-dependent maximum queue length, the length of the socket's listen queue will be set to the maximum supported value.
The socket in use may require the process to have appropriate privileges to use the listen() function.
Upon successful completions, listen() returns 0. Otherwise, -1 is returned and errno is set to indicate the error.
The listen() function will fail if:
- The socket argument is not a valid file descriptor.
- The socket is not bound to a local address, and the protocol does not support listening on an unbound socket.
- The socket is already connected.
- The socket argument does not refer to a socket.
- The socket protocol does not support listen().
The listen() function may fail if:
- The calling process does not have the appropriate privileges.
- The socket has been shut down.
- Insufficient resources are available in the system to complete the call.
accept(), connect(), socket(), <sys/socket.h>.