You have decided to write an asynchronous Python socket server application. The server will not block in processing a client request. So the server needs a mechanism to deal with each client independently.
Python 2.7 version's SocketServer
class comes with two utility classes: ForkingMixIn
and ThreadingMixIn
. The ForkingMixin
class will spawn a new process for each client request. This class is discussed in this section. The ThreadingMixIn
class will be discussed in the next section. For more information, you can refer to the Python documentation at http://docs.python.org/2/library/socketserver.html.
Let us rewrite our echo server, previously described in Chapter 1, Sockets, IPv4, and Simple Client/Server Programming. We can utilize the subclasses of the SocketServer
class family. It has ready-made TCP, UDP, and other protocol servers. We can create a ForkingServer
class inherited from TCPServer
and ForkingMixin
. The former...