读书笔记: SO_LINGER 选项

SO_LINGER  选项

关键字:TCP UDP 发送接收缓冲区  CLOSE, SHUTDOWN 函数
close 函数默认处理: FIN 放到发送缓冲区的最后面,立即返回,并且发送完发送缓冲区中的所有数据。
如果想改变close的操作,可以设置SO_LINGER选项 

具体参考《UNP》 7.4

总结: 设置SO_LINGER 套接口选项后,close的成功返回只是告诉我们,早先发送的数据和fin 已经被对端的
TCP确认 ,但是不能够告诉我们对端的进程是否已读取数据。 如果不设置这个参数, 我们连对端TCP 是否接收到这个数据都不确定。

当设置了这个选项时,我们在调用close的时候要注意检查它的返回值。


根据所调用的函数(close shutdown)以及是否设置了SO_LINGER 套接口选项,可以在下面三个不同的时机返回:
1: close立即返回,不等待(close 默认处理)   完全不知道对端TCP 是否已经确认收到数据
2: close 等待一会(设置了SO_LINGER )        知道对端TCP已经确认收到数据 , 不知道进程是否收到
3: 调用shutdown 函数                         可以知道对端进程已经收到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值