当然; 只需在两个使用相同处理程序的不同线程中的两个不同端口上启动两个不同服务器。这是我刚刚编写和测试的一个完整的有效示例。如果运行此代码,则可以在http:// localhost:1111 /和http:// localhost:2222 /处获得Hello World网页。
from threading import Thread
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write("Hello World!")
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
daemon_threads = True
def serve_on_port(port):
server = ThreadingHTTPServer(("localhost",port), Handler)
server.serve_forever()
Thread(target=serve_on_port, args=[1111]).start()
serve_on_port(2222)
更新:
这也适用于Python 3,但需要稍微更改三行:
from socketserver import ThreadingMixIn
from http.server import HTTPServer, BaseHTTPRequestHandler
和
self.wfile.write(bytes("Hello World!", "utf-8"))