关闭先前打开的套接字

时间:2012-09-09 04:57:06

标签: python sockets

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

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

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