◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
tcp 服务端退出后端口仍被占用原因及其解决方法
当服务端程序意外退出时,可能导致端口被 time_wait 状态占用。这是一个正常的系统行为,旨在确保已连接的套接字被正确释放。然而,在某些情况下,这可能会导致再次启动服务端时出现“地址已使用”的错误。
为了解决此问题,可以在侦听端口前设置 so_reuseaddr 参数。此参数允许在关闭所有相关套接字后重新使用已绑定的地址。代码如下:
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 在 bind 之前加
除此之外,还可以考虑以下几点:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。