【发布时间】:2018-04-29 16:17:14
【问题描述】:
我有一个套接字侦听器线程正在运行,它应该在满足特定条件时关闭。这是我的代码 sn-p。
def __init__(self, arg):
threading.Thread.__init__(self)
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
receiver_port = int(<port>)
listen_addr = (<some ip>, receiver_port)
self.socket.bind(listen_addr)
self.shutdown = threading.Event()
self.shutdown.set()
def kill_function():
self.socket.shutdown(socket.SOCK_DGRAM)
self.shutdown.clear()
self.socket.close()
我面对
OSError: [Errno 107] Transport endpoint is not connected error when I try to
kill the socket.
如果我使用 SHUT_RD、SHUT_RDWR,则会出现同样的问题。 谁能帮我在使用 UDP 套接字时如何调用 shutdown() 函数。
提前致谢。
【问题讨论】:
-
那么,您在同一级别上有一个方法(
__init__)和一个函数(kill_function,没有self)? -
@KlausD。是的 kill 函数有自我,这是一个拼写错误
标签: python python-3.x sockets udp