Many programs are designed to work in a client-server mode. These are applications that have been written as two components: a server and a client. Each component has the ability to run on separate machines across the network if required. Often, the server contains the main “guts” of the program, maybe controlling a centralized database, while the client might be a relatively small program that takes user requests and passes them on to the server.
There are many ways that client-server programs can be written; a common way is to use socket-based libraries. Another is to base them on RPC, as in the case of NFS.
Let's look at some of the features of RPC that make this possible.
This program is the “RPC server.” It ...