A socket is one end-point of a two-way communication link among two programs running on the network. A socket is bound to a port number so that the TCP layer can recognize the application that data is destined to be sent. Socket classes are used to show the connection among a client program and a server program. The java.net package gives two classes-Socket and ServerSocket-which execute the client side of the connection and the server side of the connection, respectively.