Table of Contents
creates
an endpoint for communication and returns a descriptor. The parameter
specifies a communications domain within which communication will take
place; this selects the protocol family which should be used. These families
are defined in the include file The currently understood formats are
AF_UNIX (UNIX internal protocols), AF_INET (ARPA Internet protocols), AF_ISO (ISO
protocols), AF_NS (Xerox Network Systems protocols), and AF_IMPLINK (IMP
‘host at IMP’ link layer). The socket has the indicated which specifies
the semantics of communication. Currently defined types are: SOCK_STREAM
SOCK_DGRAM SOCK_RAW SOCK_SEQPACKET SOCK_RDM A type provides sequenced,
reliable, two-way connection based byte streams. An out-of-band data transmission
mechanism may be supported. A socket supports datagrams (connectionless,
unreliable messages of a fixed (typically small) maximum length). A socket
may provide a sequenced, reliable, two-way connection-based data transmission
path for datagrams of fixed maximum length; a consumer may be required
to read an entire packet with each read system call. This facility is protocol
specific, and presently implemented only for sockets provide access to
internal network protocols and interfaces. The types which is available
only to the super-user, and which is planned, but not yet implemented,
are not described here. The specifies a particular protocol to be used
with the socket. Normally only a single protocol exists to support a particular
socket type within a given protocol family. However, it is possible that
many protocols may exist, in which case a particular protocol must be specified
in this manner. The protocol number to use is particular to the ‘communication
domain’ in which communication is to take place; see Sockets of type
are full-duplex byte streams, similar to pipes. A stream socket must be
in a state before any data may be sent or received on it. A connection
to another socket is created with a call. Once connected, data may be
transferred using and calls or some variant of the and calls. When
a session has been completed a may be performed. Out-of-band data may also
be transmitted as described in and received as described in The communications
protocols used to implement a insure that data is not lost or duplicated.
If a piece of data for which the peer protocol has buffer space cannot
be successfully transmitted within a reasonable length of time, then the
connection is considered broken and calls will indicate an error with -1
returns and with as the specific code in the global variable The protocols
optionally keep sockets by forcing transmissions roughly every minute
in the absence of other activity. An error is then indicated if no response
can be elicited on an otherwise idle connection for a extended period (e.g.
5 minutes). A signal is raised if a process sends on a broken stream; this
causes naive processes, which do not handle the signal, to exit. sockets
employ the same system calls as sockets. The only difference is that
calls will return only the amount of data requested, and any remaining
in the arriving packet will be discarded. and sockets allow sending of
datagrams to correspondents named in calls. Datagrams are generally received
with which returns the next datagram with its return address. An call
can be used to specify a process group to receive a signal when the out-of-band
data arrives. It may also enable non-blocking I/O and asynchronous notification
of I/O events via The operation of sockets is controlled by socket level
These options are defined in the file and are used to set and get options,
respectively.
A -1 is returned if an error occurs, otherwise
the return value is a descriptor referencing the socket.
The call
fails if: The protocol type or the specified protocol is not supported
within this domain. The per-process descriptor table is full. The system
file table is full. Permission to create a socket of the specified type
and/or protocol is denied. Insufficient buffer space is available. The socket
cannot be created until sufficient resources are freed.
The function call appeared in
Table of Contents