Launching a separate thread or process per client may not be viable in any larger network server application where several hundred or thousand clients are concurrently connected to the server. Due to the limited available memory and host CPU power, we need a better technique to deal with large number of clients. Fortunately, Python provides the
select module to overcome this problem.
We need to write an efficient chat server that can handle several hundred or a large number of client connections. We will use the
select() method from the
select module that will enable our chat server and client to do any task without blocking a send or receive call all the time.
Let us design this recipe such ...