이것은 내 udp 서버에 사용 된 코드입니다. 내 문제는 내가 메서드를 종료 호출 할 때 그것만 udp 소켓에서 다른 메시지를받은 후 수신 루프를 중지합니다. 메서드를 종료 할 때 즉시 스레드를 중지하고 싶습니다. 아니면 이것을하는 더 좋은 방법이 있습니까? 당신의 종료 방법에 감사파이썬에서 udp 소켓 스레드를 멈추는 방법?
class StartThread:
def __init__(self):
self._running = True
self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.s.bind(("0.0.0.0", 1234))
def terminate(self):
self._running = False
def run(self):
while self._running:
data, addr = self.s.recvfrom(1024)
c = StartThread()
t = Thread(target=c.run)
t.start()
스레드에 대한 대안으로'import select' 또는'import twisted' (설치가 필요함)를 볼 수 있습니다. – User