HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)
__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
l
listen(2) 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 using socket(), a queue for incoming connections is
activated using listen(), and then connections are accepted using accept(). listen() applies
only to unconnected sockets of type SOCK_STREAM. Except for AF_VME_LINK, if the socket has not been
bound to a local port before listen() is invoked, the system automatically binds a local port for the
socket to listen on (see inet(7F)). For sockets in the address family AF_CCITT and AF_VME_LINK, the socket
must be bound to an address by using bind() before connection establishment can continue, otherwise an
EADDREQUIRED error is returned.
A listen queue is established for the socket specified by the s parameter, which is a socket descriptor.
backlog defines the desirable queue length for pending connections. The actual queue length may be
greater than the specified backlog. If a connection request arrives when the queue is full, the client will
receive an
ETIMEDOUT error.
backlog is limited to the range of 0 to SOMAXCONN, which is defined in <sys/socket.h>
. SOMAX-
CONN
is currently set to 4096. If any other value is specified, the system automatically assigns the closest
value within the range. A backlog of 0 specifies only 1 pending connection is allowed at any given time.
DEPENDENCIES
AF_CCITT:
Call-acceptance can be controlled by the
X25_CALL_ACPT_APPROVAL ioctl() call described in
RETURN VALUE . Upon successful completion, listen() returns 0; otherwise, it returns −1 and sets
errno to indicate the error.
ERRORS
listen() fails if any of the following conditions are encountered:
[EBADF] s is not a valid file descriptor.
[EDESTADDRREQ] The socket s has not been bound to an address by using
bind().
[ENOTSOCK] s is a valid file descriptor but it is not a socket.
[EOPNOTSUPP] The socket referenced by s does not support listen().
[EINVAL] The socket has been shut down or is already connected (see socketx25(7)).
FUTURE DIRECTION
Currently, the default behavior is the HP-UX BSD Sockets; however, it might be changed to X/Open
Sockets in a future release. At that time, any HP-UX BSD Sockets behavior that is incompatible with
X/Open Sockets might be obsoleted. Applications that conform to the X/Open specification now will avoid
migration problems (see xopen_networking(7)).
MULTITHREAD USAGE
The
listen() system call is thread-safe. It has a cancellation point; and it is async-cancel safe, async-
signal safe, and fork-safe.
AUTHOR
listen() was developed by HP and the University of California, Berkeley.
SEE ALSO
accept(2), connect(2), socket(2), socketx25(7), xopen_networking(7), af_ccitt(7F), af_vme_link(7F), inet(7F).
STANDARDS CONFORMANCE
listen(): XPG4
Section 2−−132 − 1 − HP-UX Release 11i: December 2000
___
___