Client-server application software involves a client program on the user's computer and server program on a remote computer. The idea is that, instead of running application software on each user's machine, the software and data/files are installed on a remote networked computer (server). The user can request the server to send data, files, graphics, and images and sound as and when needed. Instead of transporting entire files across the network, the server sends just the parts requested, and the software that the client program needs to display the files on the user's screen. What is more, the exchanges of requests and responses between the client computer and the server happen so fast and seamlessly that it appears that the two communicating computers actually connect, exchange data and then disconnect, even if their physical locations are separated by thousands of kilometers.
For instance, when a user wants to send an email, he or she uses email client software to compose the message, to attach email address to it, and to dispatch it, i.e. to send the message to an email server. When the message is delivered, the server takes over, splits the message in datagram's, and sends them on their way into the hotchpotch of interconnected data communication networks. The datagram's find themselves at the server on which the addressee has an email box. After reassembling the datagram's into the original message, the receiving server holds the message until the addressee comes by and collects it (with his email client software).