Client-server applications are configured on a network (internet/intranet). Clients send requests to the server for a resource and, in turn, receive responses from the server. A computer that can send such requests for a resource/service is called a client, and the computer that contains the program that provides the requested resource/service to more than one client is called a server. Both clients and servers can be connected through a wired/wireless network protocol:
In the preceding figure, client-server communication can be visualized as a program running on the client machine interacting with another program running on the server machine. This communication through the network involves networking services offered by diverse communication protocols.
In a single processor system, applications can talk to each other through shared memory. The producer process writes data to the buffer or filesystem, and the consumer process reads the data from there. In distributed...