NAME
listen
—
listen for connections on a
socket
SYNOPSIS
#include
<sys/socket.h>
int
listen
(int
s, int
backlog);
DESCRIPTION
To accept connections, a socket is first created with
socket(2),
a willingness to accept incoming connections and a queue limit for incoming
connections are specified with
listen
(),
and then the connections are accepted with
accept(2).
The listen
() call applies only to sockets of type
SOCK_STREAM
or
SOCK_SEQPACKET
.
The backlog parameter defines the maximum
length the queue of pending connections may grow to. If a connection request
arrives with the queue full the client may receive an error with an
indication of ECONNREFUSED
, or, if the underlying
protocol supports retransmission, the request may be ignored so that retries
may succeed.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
ERRORS
listen
() will fail if:
- [
EBADF
] - The argument s is not a valid descriptor.
- [
ENOTSOCK
] - The argument s is not a socket.
- [
EOPNOTSUPP
] - The socket is not of a type that supports the operation
listen
(). - [
EINVAL
] - The socket is already connected.
SEE ALSO
STANDARDS
The listen
() function conforms to
IEEE Std 1003.1-2008 (“POSIX.1”).
HISTORY
The listen
() system call first appeared in
4.1cBSD.
BUGS
The backlog is currently limited (silently) to the value of the kern.somaxconn sysctl, which defaults to 128.