Networking: Client and Server
back to iNetwork
Contents
Networking 101
A network is a group or system of interconnected machines, people and or other things. This link between parts or components of a group or system is what allows for interaction and communication. In networking this is made possible by a server that sends and receives messages to and from clients. It facilitates communication, interaction and sharing.
You can think of the server as a post office and the clients are the individuals that have letters or packages that need to be delivered. These letters and packages are the messages that are sent and received to and from other clients.
back to top
Client
Clients are members of a networking system who communicate through the server. Clients can be:
- handheld devices
- machines (i.e. computers)
- users
- applications
- etc.
back to top
Server
The server acts as the network facilitator. It can receive and handle a number of different messages depending on the tasks that the system needs to be able to perform. However, the server can be set-up in such a way so that it can either be a smart server or a stupid server,.
"Smart" Server
In this case the server is smart in the sense that, besides merely sending and receiving messages, it has a hand in the easier execution of tasks. Through the use of data structures, methods and or functions the server is able to help facilitate the network better, by remembering important information and the like.
For example, in the first given tutorial, which provides an application that has the simple task of incrementing the same value, has what we refer to as a smart server. The server is the one responsible for remembering and keeping track of the manipulated value not the clients. In doing this, the server makes the task of telling a new client that connects in the middle of an on going session what the current value is a lot easier and more efficient.
A smart server helps to avoid the "late comer" problem. In a nut shell the late comer problem refers to the point at which a client connects somewhere in the middle of an on going networking session. This client is the late comer and knows nothing about anything that has happened before connection was made. This client will only be aware of things that happen from their point of connection onward.
"Stupid" Server
As the opposite of the smart server, a server is stupid in that it only has the task of sending and receiving messages. Although it does not make the execution of tasks any harder than it would originally be, it does not do anything that would be meant to make things easier and more efficient. In other words, the server is not made to remember any relevant information or data.
Using the example of the incrementor tutorial mentioned above, if its server was made to be stupid then it would not be the one responsible for remembering and keeping track of the manipulated value. On the contrary the clients themselves would most likely be the ones responsible for remembering the value. This leads us back to the "late comer" problem. Suppose a new client connects to the server in the middle of an on going session, with the stupid server they will not be able to know what the current value is. Instead, unlike the other clients, this client will have a value of zero.