Socket programming shows how to use socket APIs to establish communication links between remote and local processes. It is a way of connecting two nodes on a network to communicate with each other. One socket(node) listens on a particular port at an IP, while other socket reaches out to the other to form a connection. Server forms the listener socket while client reaches out to the server.
“Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.”
— David Gelernter
A basic socket programming tutorial on a Kali Linux machine. A network trace is used to confirm that a "sock_stream" socket uses "TCP" in the background.
You can download the C files here.