0

我创建了一个在 python 中侦听特定套接字的程序,但是我 ctrl+c'd 脚本导致 .close() 也没有被调用,但是我现在如何释放套接字。

4

2 回答 2

2

进程退出时套接字关闭。它使用的端口可能会挂起几分钟,这是正常的,然后它会消失。如果需要立即重用端口,请在绑定或连接前设置 SO_REUSEADDR。

于 2012-09-09T05:08:43.643 回答
0

SO_REUSEADDR在调用方法之前设置套接字选项bind,如下所示:

sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

这将指示套接字自由地重用由于最近运行程序而处于等待状态的端口。

或者,使用标准库中的类,如果您将服务器实例上SocketServer.TCPServer的属性设置为真值,它将自动执行此操作。allow_reuse_address

于 2012-09-09T06:41:22.300 回答