我正在与客户端/服务器一起制作Tic Tac Toe应用程序。当按CTRL + C时,我有一个自定义处理程序,该处理程序关闭套接字(也正在侦听套接字),然后退出。但是,如果我尝试再次运行该程序,有时会出现错误,指出该端口已被使用,因此无法绑定,该过程持续了几分钟(或直到重新启动),持续了几秒钟,有时甚至根本没有发生。我怀疑这是正常过程,但是我想提出第二点意见。此外,对于如何避免这种情况的任何建议将不胜感激!
编辑:忘记了,再次有时,杀死了终端。
答案 0 :(得分:2)
有一个连接(由IP地址和端口号标识)仍处于TIME_WAIT
状态。之所以存在此状态,是因为网络中可能有一些IP包已发送到此连接。尝试绑定套接字时,可能会收到错误EADDRINUSE
。
您可以使用netstat
进行检查。
了解套接字选项SO_REUSEADDR
和SO_REUSEPORT
。