I’m writing a small web server in Python, using BaseHTTPServer and a custom subclass of BaseHTTPServer.BaseHTTPRequestHandler. Is it possible to make this listen on more than one port?
What I’m doing now:
class MyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): def doGET [...] class ThreadingHTTPServer(ThreadingMixIn, HTTPServer): pass server = ThreadingHTTPServer(('localhost', 80), MyRequestHandler) server.serve_forever()
Sure; just start two different servers on two different ports in two different threads that each use the same handler. Here’s a complete, working example that I just wrote and tested. If you run this code then you’ll be able to get a Hello World webpage at both http://localhost:1111/ and http://localhost:2222/
update:
This also works with Python 3 but three lines need to be slightly changed:
and