一个关于socket的问题

发布于 2022-10-01 11:37:11 字数 207 浏览 15 评论 0

在socket服务端程序接收到客户端的“退出”命令后,服务端正常退出,但是下一次启动服务端后,客户端就连接不上了,但是过了一段时间以后(比如编辑某篇文章以后等)再运行服务器端和客户端又可以正常通讯了。使用netstat -n -a命令查看后发现那个连接端口仍然在列表中,如附图红色标记部分所表示。可是我在服务器端结束时候调用了close(sockfd);函数啊,为什么会出现“TIME WAIT”?有没有办法解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你丑哭了我 2022-10-08 11:37:11

我已经知道答案了,需要添加SO_REUSEADDR参数

月竹挽风 2022-10-08 11:37:11

建议你在服务器端循环使用三个端口

小糖芽 2022-10-08 11:37:11

先调用shutdown(sockfd,2);试试。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文