struct linger

news/2024/7/24 12:54:09 标签: 数据结构与算法, 网络

 TCP连接断开的时候调用close socket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?

是通过设置socket描述符一个linger结构体属性。

linger结构体数据结构如下:

struct linger { int l_onoff; int l_linger; };   

有三种组合方式:

第一种

    l_onoff = 0;

    l_linger忽略

这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就是优雅的退出.


第二种

    l_onoff非零

    l_linger = 0;

这种方式下,在调用close socket的时候同样会立刻返回,但不会发送未发送完成的数据,而是通过一个REST包强制的关闭socket描述符,也就是强制的退出。


第三种

    l_onoff非零

    l_linger > 0

这种方式下,在调用close socket的时候不会立刻返回,内核会延迟一段时间,这个时间就由l_linger得值来决定。如果超时时间到达之前,发送完未发送的数据(包括FIN包)并得到另一端的确认,close socket会返回正确,socket描述符优雅性退出。

否则,close socket会直接返回错误值,未发送数据丢失,socket描述符被强制性退出。

需要注意的时,如果socket描述符被设置为非堵塞型,则close socket会直接返回值。

 

 

 


http://www.niftyadmin.cn/n/1486271.html

相关文章

寻找快乐

搭建j2ee框架还真费事,弄了一天了,最终出来了,还算有成绩哟,给自己加油,这条路我走定了转载于:https://blog.51cto.com/2160920/422398

Java中输出正则表达式匹配到的内容

在Java中用str.matches(reg)的方式是返回的一个布尔值,而我们有的时候需要返回匹配到的值的内容,具体实现代码如下: public static void main(String[] args) {String reg "2[0-9]{11}-{0,1}[0-9]{0,1}";Pattern p Pattern.compi…

从传递进来的字母序列中找到缺失的字母并返回它。 如果所有字母都在序列中,返回 undefined。...

代码一&#xff08;自己思路&#xff09;&#xff1a; function fearNotLetter(str) { var str1str.split(""); var j0; for(var istr1[0].charCodeAt();i<str1[str1.length-1].charCodeAt();i){ if(i ! str1[j].charCodeAt()){ return String.fromCharCode(i); }…

【AntDesign】select组件选中后显示其他而不是选中项

1.原因&#xff1a;a-select标签和a-select-option标签分别绑定了两个值导致显示出错 解决方法&#xff1a;删除<a-select-option>里的:value只留<a-select>绑定相关值的语句 <a-selectv-decorator"[productType,{rules: [{required: true,message: 请选…

IT规划的企业应用实践(5)研究背景 之 信息化建设冷暖自知

研究背景 之 信息化建设冷暖自知 过去几年&#xff0c;我所服务的企业大多是行业翘楚&#xff0c;所看到的事实是&#xff0c;企业信息化建设进程开始都较早&#xff0c;其建设和应用的内容覆盖了企业很多领域&#xff0c;从市场营销、销售管理、采购管理、生产管理、人力资源管…

mongoDB数据库查询实用语句

查询source_id属性存在的元组 db.getCollection(‘数据库名’).find({source_id:{$exists:true}}) db.getCollection(‘mqtt_log’).find({source_id:{$exists:true}}) 查询source_id属性为具体数值的元组 db.getCollection(‘api_log’).find({source_id:“777779014”}) …

最悠久的虚拟化技术 IBM四步构架云平台

作为历史最悠久的虚拟化倡导者&#xff0c;如今的IBM正 在凭借自身的技术底蕴诠释一种与以往截然不同的IT理念——云计算。这一理念虽然只在近年才真正兴起&#xff0c;但已广受关注。其实&#xff0c;第一次让绝大多数中国用户听到 云计算这个词的&#xff0c;就是IBM。此后众…