Network programming refers to writing programs that could be processed across various devices which are connected to each other via a network. Network programming is similar to socket programming or client-server programming. It basically uses the client server model. In client-server programming there are two different programs or process, one which initiates communication called Client process and other who is waiting for communication to start called server process. Sockets provide the communication mechanism between two computers.