The Network paradigm involves thinking of computing in terms of a client, who is essentially in need of some type of information, and a server, who has lots of information and is just waiting to hand it out. Typically, a client will connect to a server and query for certain information. The server will go off and find the information and then return it to the client. Network programming uses a particular type of network communication known as sockets. A socket is a software abstraction for an input or output medium of communication.