Sockets are an inter-process network communication implementation using a Internet Protocol (IP) stack on an Ethernet transport. Sockets are language and protocol independent and available to “C”, Perl, Python, Ruby and Java (and more) programmers. The “C” language BSD API is used on Linux, all popular variants of Unix, Microsoft Windows (NT,2000,XP,… and later) and even embedded OSs like VxWorks. It is by far the most popular implementation of inter-process network communication.
Sockets allow one process to communicate with another whether it is local on the same computer system or remote over the network. Many other higher level protocols are built upon sockets technology.
The sockets API provides many configuration options so we will try and cover the socket API components and then give examples of a few implementations. It would be very difficult to cover all variations of its use.