我试图让一个简单的服务器启动并运行套接字,在那里它将向任何连接的客户端发送相同的信息。在KeyboardInterrupt
的情况下,我已经成功地处理了线程并停止了它们,但是我不知道如果脚本提前结束(例如python进程关闭或者您再次强制运行脚本),如何关闭套接字。在
一个非常基本的例子是:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_process.bind(('localhost', 60000))
socket_process.listen(5)
conn, addr = socket_process.accept()
如果您运行它(至少在Windows上),然后按F5键再次运行它,您将得到error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted.
。它最终会在半分钟后关闭,但是如果生成它的脚本不再存在,我希望它立即关闭。在
即使设置了超时,也不会导致错误更快地消失。在
根据记录,atexit
不会捕捉到这些类型的退出。我认为类似于多处理守护进程选项的东西如果存在的话也可以工作。在
目前没有回答
相关问题 更多 >
编程相关推荐