我正在使用一些Python,如下所示:
HOST = '127.0.0.1'
PORT = 43434
single = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
single.bind((HOST, PORT))
except socket.error as e:
# Print an error, exit.
虽然它过去运行良好,但现在我们收到错误[Errno 98] Address already in use
。 SIGINT 处理程序关闭套接字连接,因此我不确定它是如何进入该状态的,但现在我只是尝试修复它。
Both lsof
and netstat
假设没有任何东西使用该端口:
[$]> sudo netstat -an | grep 43434
[$]> sudo lsof -i :43434
TIME_WAIT
设置为 60 秒,根据/proc/sys/net/ipv4/tcp_fin_timeout
,但即使在上次成功运行数小时后也会出现错误。
我尝试过(暂时)设置REUSEADDR
(via single.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
),但这似乎没有效果。
这是怎么回事?我是否能够再次使用此端口而无需重新启动计算机?
尝试这个:
tcpkill -i eth0 端口 43434
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)