An interface for network communication provided by a low-level library. The sockets we discuss are all stream-oriented,
reading and writing sequences of bytes. Stream-oriented means that sockets do not provide you with a message structure.
If you need that you will have to provide it.
In order to communicate these sockets have to be connected.
To connect, your code needs, on one end of the channel, a connecter socket and, on the other end, a socket listener,
to listen for, and establish a connected channel.
You will find that the Sockets library, in our repository, provides good support
for building programs using network communication.