LISTEN(2) | System Calls Manual | LISTEN(2)

# 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

accept(2), connect(2), socket(2), sysctl(8)

# 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.

September 10, 2015 | Debian