The socket provides the base abstraction around the socket file descriptor and includes some initialization, cleanup, and conversion utilities.
The socket class is subclassed into UdpSocket and TcpSocket.