struct linger 用法
来源:互联网 发布:linux shell 权限不够 编辑:程序博客网 时间:2024/04/29 09:26
Linux下tcp连接断开的时候调用close()函数,有优雅断开和强制断开两种方式。
那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。
linger结构体数据结构如下:
#include <arpa/inet.h>struct linger { int l_onoff; int l_linger;};
三种断开方式:
1. l_onoff = 0; l_linger忽略
close()立刻返回,底层会将未发送完的数据发送完成后再释放资源,即优雅退出。
2. l_onoff != 0; l_linger = 0;
close()立刻返回,但不会发送未发送完成的数据,而是通过一个REST包强制的关闭socket描述符,即强制退出。
3. l_onoff != 0; l_linger > 0;
close()不会立刻返回,内核会延迟一段时间,这个时间就由l_linger的值来决定。如果超时时间到达之前,发送完未发送的数据(包括FIN包)并得到另一端的确认,close()会返回正确,socket描述符优雅性退出。否则,close()会直接返回错误值,未发送数据丢失,socket描述符被强制性退出。需要注意的时,如果socket描述符被设置为非堵塞型,则close()会直接返回值。
具体用法:
struct linger ling = {0, 0};setsockopt(socketfd, SOL_SOCKET, SO_LINGER, (void*)&ling, sizeof(ling));
转载请注明出处 http://www.cnblogs.com/caosiyang/archive/2012/03/29/2422956.html
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger 用法
- struct linger
- struct linger
- struct linger
- struct linger
- struct linger
- struct linger
- struct linger结构体作用详解
- 套接字选项之struct linger
- struct linger 设置socket断开连接的方式
- struct 用法
- tomcat 虚拟目录与显示目录中文件列表
- 关于python class
- 铃音tong script
- Visibility in Bad Weather from a Single Image---2008CVPR ,Tan
- JS的两个妙用
- struct linger 用法
- .net生态环境的弱化
- 悔学
- HTML DOM元素的事件的Bubbling 和 Capturing
- [oracle]ORA-00942: 表或视图不存在错误的一个可能原因
- 静态成员函数,静态数据成员
- OCP-1Z0-051-V9.02-17题
- arx函数
- Android学习笔记16:Button控件图文混排效果的实现