The SocketServer Module
The Python library supplies a framework module, SocketServer
, to help you implement simple Internet servers. SocketServer
supplies server classes TCPServer
, for connection-oriented servers using TCP, and UDPServer
, for datagram-oriented servers using UDP, with the same interface.
An instance s
of either TCPServer
or UDPServer
supplies many attributes and methods, and you can subclass either class and override some methods to architect your own specialized server framework. However, I do not cover such advanced and rarely used possibilities in this book.
Classes TCPServer
and UDPServer
implement synchronous servers that can serve one request at a time. Classes ThreadingTCPServer
and ThreadingUDPServer
implement threaded servers, spawning a new thread per request. You are responsible for synchronizing the resulting threads as needed. Threading is covered in Threads in Python.
The BaseRequestHandler Class
For normal use of SocketServer
, subclass the BaseRequestHandler
class provided by SocketServer
and override the handle
method. Then instantiate a server class, passing the address pair on which to serve and your subclass of BaseRequestHandler
. Finally, call serve_forever
on the server instance.
An instance h
of BaseRequestHandler
supplies the following methods and attributes.
client_address | The |
handle |
Your subclass overrides this method, and the server ... |
Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.