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

# NAME

`listen` —
listen for connections on a socket

# LIBRARY

Standard C Library (libc, -lc)

# 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

A 0 return value indicates success; -1 indicates an 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`().

# SEE ALSO

accept(2), connect(2), socket(2)

# HISTORY

The `listen`() function call appeared in 4.2BSD.

# BUGS

The backlog is currently limited (silently) to 128.

December 11, 1993 | NetBSD 9.2