Python套接字:尽管有SO_REUSEADDR,但无法重用地址

时间:2017-10-20 19:13:48

标签: python sockets tcp

我想要一个我正在编写的Python程序,使用端口与另一个程序进行通信。我在套接字方面遇到了很多麻烦,但主要的问题是我在调试程序时无法重用端口。

以下是我创建套接字的代码部分:

# create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_address = ("localhost", 10000)
sock.bind(server_address)
# listen for activity
sock.listen(1)

当我在这一点之后尝试做事时,程序通常会崩溃。如果我尝试重新运行它,我会收到“已使用的地址”错误。我唯一的解决方法是关闭我的IDE并重新打开或更改程序用来通信的端口。我注意到程序崩溃后,它仍在监听端口。

COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    1981 ********  139u  IPv6 0x9b8f5bc88c24993f      0t0  TCP localhost:ndmp (LISTEN)

(它说Java因为我从Jython环境运行我的程序。)

我可以在Python端做些什么,以便我可以重新运行我的程序吗?

0 个答案:

没有答案