The SocketServer Module
The Python library supplies a framework
module, SocketServer, to help you implement
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, able to
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 Chapter 14.
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 method
serve_forever on the server class instance.
An instance h of
BaseRequestHandler supplies the following methods
and attributes.
HTTP Servers
The BaseHTTPServer,
SimpleHTTPServer,
CGIHTTPServer, and
SimpleXMLRPCServer modules implement HTTP servers of different completeness and sophistication on top of ...