linux下tcp编程

发布于 2022-09-07 04:05:55 字数 164 浏览 13 评论 0

刚学linux下tcp编程,刚成功实现了一个简单的回射client-server。

但有个疑问,当客户端传完文件结束,此时它需要close(fd),那么我如何通知服务端你也可以关闭了呢?

我的想法是再手动传一个特殊字符串,告诉服务端你也可以close了,但不知道这样的想法是否正确?

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

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

发布评论

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

评论(2

药祭#氼 2022-09-14 04:05:55

实际上是没有必要手动传的。当客户端调用 close 的时候,服务端会读到 EOF,这时候服务端就可以 close 了(如果不再给客户端发数据)

橙味迷妹 2022-09-14 04:05:55

调用close之后,客户端会发送一个FIN包到服务端,服务端ACK之后也会发一个FIN包给客户端,客户端最终再发一次ACK就会正式结束本次连接,你在应用层是不需要任何额外的操作的。
但是:你结束的只是本次连接,在tcp中,标记一个连接是四元组(源地址,源端口,目标地址,目标端口),并非把整个服务端给关闭了 这一点很重要哦

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