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
talk and the
other familiar network programs use sockets.
Not all operating systems support sockets. In the GNU C 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.
|• Socket Concepts||Basic concepts you need to know about.|
|• Communication Styles||Stream communication, datagrams and other styles.|
|• Socket Addresses||How socket names (“addresses”) work.|
|• Interface Naming||Identifying specific network interfaces.|
|• Local Namespace||Details about the local namespace.|
|• Internet Namespace||Details about the Internet namespace.|
|• Misc Namespaces||Other namespaces not documented fully here.|
|• Open/Close Sockets||Creating sockets and destroying them.|
|• Connections||Operations on sockets with connection state.|
|• Datagrams||Operations on datagram sockets.|
|• Inetd||Inetd is a daemon that starts servers on request. The most convenient way to write a server is to make it work with Inetd.|
|• Socket Options||Miscellaneous low-level socket options.|
|• Networks Database||Accessing the database of network names.|