No class on sockets can be completed without mentioning Berkeley Sockets. Berkeley sockets is an industry standard Application Programming Interface (API) to create and use sockets. It was initially used as an API for the Unix operating system and was later adopted by TCP/IP.
Berkeley defines 18 standard function names for this purpose. This graphic shows a few examples.
The socket() function creates a socket on the host.
The bind() function is typically used on the server side and assigns a socket to its local IP address and port number. Connect() is typically used on the client side. It creates a socket and also attempts to establish a TCP or UDP connection with a server.
Send(),recv() and write(),read() are used to send and receive the messages to and from the socket.
Berkeley sockets are also sometimes referred to as BSD sockets (Berkeley Software Distribution), named for work done at the University of California, Berkeley, in the 1980's.