您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何编写python HTTP服务器以侦听多个端口?

如何编写python HTTP服务器以侦听多个端口?

当然; 只需在两个使用相同处理程序的不同线程中的两个不同端口上启动两个不同服务器。这是我刚刚编写和测试的一个完整的有效示例。如果运行此代码,则可以在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"))
python 2022/1/1 18:38:46 有263人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶