Writing a chat server using select.select
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 a large number of clients. Fortunately, Python provides the select
module to overcome this problem.
How to do it...
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 a call all the time.
Let us design this recipe such that a single script can launch both client and server with an additional --name
argument. Only if --name=server
is passed from the command line, the script will launch the chat server. Any other value passed to the --name
argument, for example...