Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > S

socket(7)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

socket — interprocess communications

DESCRIPTION

Sockets are communication endpoints that allow processes to communicate either locally or remotely. They are accessed by means of a set of system calls (see socket(2)).

The following ioctl() requests are defined in <sys/ioctl.h> (see ioctl(2)):

FIOSNBIO

If the int with the address arg is non-zero, the socket is put into non-blocking mode. Otherwise, the socket is put into blocking mode. Blocking mode is the default. The FIONBIO request is equivalent to the FIOSNBIO request, although using FIONBIO is not recommended. See accept(2), connect(2), recv(2), and send(2) for an explanation of how non-blocking mode is used.

FIONREAD

For SOCK_STREAM sockets, the number of bytes currently readable from this socket is returned in the integer with the address arg. For SOCK_DGRAM sockets, the number of bytes currently readable, plus the size of the sockaddr structure (defined in <sys/socket.h>), is returned in the integer with the address arg.

SIOCATMARK

For SOCK_STREAM TCP sockets, on return the integer with the address arg is non-zero if the inbound TCP stream has been read up to where the out-of-band data byte starts. Otherwise, the inbound TCP stream has not yet been read up to where the out-of-band data byte starts. For sockets other than SOCK_STREAM TCP sockets, on return the integer with the address arg is always zero.

SIOCSPGRP

This request sets the process group or process ID associated with the socket to be the value of the integer with the address arg. A process group or process ID associated with the socket in this manner is signaled when the state of the socket changes: SIGURG is delivered upon the receipt of out-of-band data; SIGIO is delivered if the socket is asynchronous, as described in FIOASYNC below. If the value of the integer with the address arg is positive, the signal is sent to the process whose process ID matches the value specified. If the value is negative, the signal is sent to all the processes that have a process group equal to the absolute value of the value specified. If the value is zero, no signal is sent to any process. It is necessary to issue this request with a non-zero integer value to enable the signal delivery mechanism described above. The default for the process group or process ID value is zero.

SIOCGPGRP

This request returns the process group or process ID associated with the socket in the integer with the address arg. See the explanation for SIOCSPGRP above for more details on the meaning of the integer value returned.

FIOASYNC

If the integer whose address is arg is non-zero, this request sets the state of the socket as asynchronous. Otherwise, the socket is put into synchronous mode (the default). Asynchronous mode enables the delivery of the SIGIO signal when either of the following conditions is met.

  • New data arrives.

  • For connection-oriented protocols, whenever additional outgoing buffer space becomes available or the connection is established or broken.

The process group or process ID associated with the socket must be non-zero in order for SIGIO signals to be sent. The signal is delivered according to the semantics of SIOCSPGRP described above.

The fcntl(2) O_NDELAY and O_NONBLOCK flags (defined in <fcntl.h>) are supported by sockets. If the O_NONBLOCK flag is set, the socket is put into POSIX-style non-blocking mode. If the O_NDELAY flag is set, the socket is put into non-blocking mode. Otherwise, the socket is put into blocking mode. Blocking mode is the default. See accept(2), connect(2), recv(2), and send(2) for an explanation of how these forms of non-blocking mode are used.

Since the fcntl() O_NONBLOCK and O_NDELAY flags and ioctl() FIOSNBIO requests are supported, the following clarifies on how these features interact. If the O_NONBLOCK or O_NDELAY flag has been set, recv() and send() requests behave accordingly, regardless of any FIOSNBIO requests. If neither the O_NONBLOCK flag nor the O_NDELAY flag has been set, FIOSNBIO requests control the the behavior of recv() and send().

DEPENDENCIES

AF_CCITT Only

Only the FIOSNBIO, FIONREAD, SIOCGPGRP, and SIOCSPGRP ioctl() requests are defined for af_ccitt sockets.

AUTHOR

socket was developed by the University of California, Berkeley.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.