listen(2) BSD System Calls Manual listen(2)
listen -- listen for connections on a socket
#include <sys/socket.h> int listen(int socket, int backlog);
Creation of socket-based connections requires several operations. First, a socket is created with socket(2). Next, a willingness to accept incom- ing connections and a queue limit for incoming connections are specified with listen(). Finally, the connections are accepted with accept(2). The listen() call applies only to sockets of type SOCK_STREAM. The backlog parameter defines the maximum length for the queue of pending connections. If a connection request arrives with the queue full, the client may receive an error with an indication of ECONNREFUSED. Alterna- tively, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.
The listen() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
listen() will fail if: [EACCES] The current process has insufficient privileges. [EBADF] The argument socket is not a valid file descriptor. [EDESTADDRREQ] The socket is not bound to a local address and the protocol does not support listening on an unbound socket. [EINVAL] socket is already connected. [ENOTSOCK] The argument socket does not reference a socket. [EOPNOTSUPP] The socket is not of a type that supports the opera- tion listen().
The backlog is currently limited (silently) to 128.
The listen() function call appeared in 4.2BSD. 4.2 Berkeley Distribution March 18, 2015 4.2 Berkeley Distribution
Mac OS X 10.12.3 - Generated Sat Feb 4 18:45:06 CST 2017