0
각 프로세스에 자체 스레드를 만들어 TCP, UDP 및 HTTP 연결을 허용하는 서버를 만들려고합니다. TCP 및 HTTP 연결을 이미 완료했으며 UDP 부분이 올바르게 시작되지만 UDP를 통해 메시지를 보내려고하면 시스템이 중단됩니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?파이썬 스레드 UDP 및 TCP 서버?
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()
을 추가 할 수