【问题标题】:Python Threaded UDP and TCP Server?Python线程UDP和TCP服务器?
【发布时间】:2014-07-21 20:13:43
【问题描述】:

我试图通过让每个进程都有自己的线程来创建一个允许 TCP、UDP 和 HTTP 连接的服务器。我已经完成了 TCP 和 HTTP 连接,并且 UDP 部分正确启动,但是当我尝试通过 UDP 发送消息时,系统挂起。有谁知道如何解决这个问题?

UDP 类处理程序:

class ThreadedUDPRequestHandler(socketserver.BaseRequestHandler):
    def handle(self):
        data = self.request[0].strip()
        socket = self.request[1]
        print("{} wrote: ".format(self.client_address[0]))
        print(data)
        socket.sendto(data.upper(), self.client_address)

UDP 线程:

class ThreadedUDPServer(socketserver.ThreadingMixIn, socketserver.UDPServer): 
        pass

代码中的位置:

if __name__ == "__main__":
    # Port 0 means to select an arbitrary unused port
    HOST, PORT = "127.0.0.1", 8000

    Handler = http.server.SimpleHTTPRequestHandler
    httpd = socketserver.TCPServer(("", PORT), Handler)
    http_thread = threading.Thread(target=httpd.serve_forever)
    print("Website serving at port", PORT)

    udpserver = ThreadedUDPServer((HOST,PORT+1), ThreadedUDPRequestHandler)
    udp_thread = threading.Thread(target=udpserver.serve_forever)
    print("UDP serving at port", PORT+1)

    tcpserver = ThreadedTCPServer((HOST, PORT-1), ThreadedTCPRequestHandler)
    server_thread = threading.Thread(target=tcpserver.serve_forever)
    print("TCP serving at port", PORT-1)
    udp_thread.start()

已解决: 忘记加了

udp_thread.start()

【问题讨论】:

    标签: python multithreading sockets udp python-multithreading


    【解决方案1】:

    忘记加了

    udp_thread.start()
    

    在底部

    【讨论】:

      猜你喜欢
      • 2011-01-19
      • 2018-01-23
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2014-04-24
      • 2015-04-11
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多