Chapter 7 Sockets

Table of Contents
7.1 Synopsis
7.2 Networking and Diversity
7.3 Protocols
7.4 The Sockets Model
7.5 Essential Socket Functions
7.6 Helper Functions
7.7 Concurrent Servers
Contributed by G. Adam Stanislav.

7.1 Synopsis

BSD sockets take interprocess communications to a new level. It is no longer necessary for the communicating processes to run on the same machine. They still can, but they do not have to.

Not only do these processes not have to run on the same machine, they do not have to run under the same operating system. Thanks to BSD sockets, your FreeBSD software can smoothly cooperate with a program running on a Macintosh®, another one running on a Sun™ workstation, yet another one running under Windows® 2000, all connected with an Ethernet-based local area network.

But your software can equally well cooperate with processes running in another building, or on another continent, inside a submarine, or a space shuttle.

It can also cooperate with processes that are not part of a computer (at least not in the strict sense of the word), but of such devices as printers, digital cameras, medical equipment. Just about anything capable of digital communications.