This chapter describes the GNU facilities for interprocess
communication using sockets.
A socket is a generalized interprocess communication channel.
Like a pipe, a socket is represented as a file descriptor. Unlike pipes
sockets support communication between unrelated processes, and even
between processes running on different machines that communicate over a
network. Sockets are the primary means of communicating with other
machines; telnet, rlogin, ftp, talk and the
other familiar network programs use sockets.
Not all operating systems support sockets. In the GNU library, the
header file sys/socket.h exists regardless of the operating
system, and the socket functions always exist, but if the system does
not really support sockets these functions always fail.
Incomplete: We do not currently document the facilities for
broadcast messages or for configuring Internet interfaces. The
reentrant functions and some newer functions that are related to IPv6
aren't documented either so far.