TCP/IP网络编程 学习笔记(linux)优雅断开连接

本文解释了在TCP客户端和服务器通信结束后,为何需要发送感谢信以及使用shutdown()函数进行优雅断开的原因,包括避免数据阻塞和确保消息完整性的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、为什么会出现 这种现象?

        当客户端和服务器完成一次数据的收发准备结束时,客户端为了感谢服务器发一封“感谢信——thanks”,此时服务器接收“感谢信”消息但是不回复。不知道你有没有和我一样的疑问,为什么?为什么客户端非要结束了还要发消息?为啥非要结束了发消息,为啥不能保持连接等一会等他发”感谢信“然后双方在关闭不行吗?

        至于为什么要使用”优雅的断开“,GPT是这么说的:

        我的理解就是,你把邮件发给服务器,发完了关闭了发送通道(写完信关闭了页面)。但是你仍旧可以收到服务器端给你发送的消息,例如:服务器说收到你发送的邮件,或者邮件已经寄出,对方已接收邮件等信息。

    至于第二个,因为  另一端并不知道“感谢信”就是你结束语,以为是个正常数据可能导致阻塞。半关闭关注的是结束之前还有消息发送,紧扣这个问题有如下的函数帮我们优雅的断开连接。

        二、shutdown()函数

#include<sys/socket.h>

int shutdown(int sock,int howto);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值