We will discuss all these three issues as below. We can have two methods to deal with the interactions between the client and the server. First, we can use a sequetial scheme to follow up the interactions between the client and server. There is a pitfall for that. When the number of client connecting to the server is increasing, the loading of server is stacked up.
Every client have to wait until their turn to be served by the server.
This is the worst suitation that we don't want. And that is the reason we are not picking this scheme to handle the interactions between the client and server. The other method to handle the interaction between the clients and server is use multiple-threaded. For this method, we have to deal with all the problems related to synchronization. For this method, it is harder to build a save interaction environment between the client and server, but it boost up the performance of the server.