socket(7)socket(7)NAMEsocket - 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 requests are defined in (see ioctl(2)):
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 request is equivalent
to the request, although using is not recommended. See
accept(2), connect(2), recv(2), and send(2) for an
explanation of how non-blocking mode is used.
For SOCK_STREAM sockets, the number of bytes currently read‐
able 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 is returned in the integer with
the address arg.
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 sock‐
ets other than SOCK_STREAM TCP sockets, on return the
integer with the address arg is always zero.
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: is deliv‐
ered upon the receipt of out-of-band data; is delivered
if the socket is asynchronous, as described in below.
If the value of the integer with the address arg is pos‐
itive, the signal is sent to the process whose process
ID matches the value specified. If the value is nega‐
tive, 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.
This request returns the process group or process
ID associated with the socket in the integer with the
address arg. See the explanation for above for more
details on the meaning of the integer value returned.
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 signal when either of the
following conditions is met.
· New data arrives.
· For connection-oriented protocols, whenever
additional outgoing buffer space becomes avail‐
able or the connection is established or broken.
The process group or process ID associated with the
socket must be non-zero in order for signals to be sent.
The signal is delivered according to the semantics of
described above.
The fcntl(2) and flags (defined in are supported by sockets. If the
flag is set, the socket is put into POSIX-style non-blocking mode. If
the 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 and flags and requests are supported, the following clarifies
on how these features interact. If the or flag has been set, and
requests behave accordingly, regardless of any requests. If neither
the flag nor the flag has been set, requests control the the behavior
of and
DEPENDENCIES
AF_CCITT Only
Only the and requests are defined for sockets.
AUTHOR
was developed by the University of California, Berkeley.
SEE ALSOfcntl(2), getsockopt(2), ioctl(2), socket(2).
socket(7)