|
|
HP-UX Reference Volume 3 of 5 > llisten(2) |
|
NAMElisten — listen for connections on a socket DESCRIPTIONTo 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>. SOMAXCONN is currently set to 20. 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. ERRORSlisten() fails if any of the following conditions are encountered:
FUTURE DIRECTIONCurrently, 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 USAGEThe listen() system call is thread-safe. It has a cancellation point; and it is async-cancel safe, async-signal safe, and fork-safe. SEE ALSOaccept(2), connect(2), socket(2), socketx25(7), xopen_networking(7), af_ccitt(7F), af_vme_link(7F), inet(7F). |
|