一个关于socket的问题
在socket服务端程序接收到客户端的“退出”命令后,服务端正常退出,但是下一次启动服务端后,客户端就连接不上了,但是过了一段时间以后(比如编辑某篇文章以后等)再运行服务器端和客户端又可以正常通讯了。使用netstat -n -a命令查看后发现那个连接端口仍然在列表中,如附图红色标记部分所表示。可是我在服务器端结束时候调用了close(sockfd);函数啊,为什么会出现“TIME WAIT”?有没有办法解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我已经知道答案了,需要添加SO_REUSEADDR参数
建议你在服务器端循环使用三个端口
先调用shutdown(sockfd,2);试试。