返回信息流socket运行完close之后,再绑定上一次使用的IP和端口号时,会报错。
服务器端是:
Traceback (most recent call last):
File "/home/huangzhe/examples/digital/restart_lead_tunnel_tx.py", line 41, in <module>
sock.bind(('192.168.200.3', 8002))
File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
客户端是:
Traceback (most recent call last):
File "/home/huangzhe/examples/digital/restart_lead_tunnel_rx.py", line 36, in <module>
sock.bind(('192.168.200.2', 8002))
File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
是不是上一次使用完socket没有关闭?但是我确实是运行了sock.close()。请问这是什么原因?
这是一条镜像帖。来源:北邮人论坛 / cpp / #47635同步于 2010/12/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教一个关于socket的问题
beiyoufxy
2010/12/12镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
其实close的调用只是表面而已,内核的响应需要时间,“它由 TCP 套接字状态 TIME_WAIT 引起。该状态在套接字关闭后约保留 2 到 4 分钟。在 TIME_WAIT 状态退出之后,套接字被删除,该地址才能被重新绑定而不出问题。”
【 在 doubleTao 的大作中提到: 】
: 其实close的调用只是表面而已,内核的响应需要时间,“它由 TCP 套接字状态 TIME_WAIT 引起。该状态在套接字关闭后约保留 2 到 4 分钟。在 TIME_WAIT 状态退出之后,套接字被删除,该地址才能被重新绑定而不出问题。”
: --
哦~~~非常非常感谢