struct linger
来源:互联网 发布:大数据技术与应用 在职 编辑:程序博客网 时间:2024/06/06 08:46
TCP连接断开的时候调用closesocket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。
linger结构体数据结构如下:
struct linger
{
int l_onoff;
int l_linger;
};
有三种组合方式:
第一种
l_onoff = 0;
l_linger忽略
这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就
是优雅的退出。
第二种
l_onoff非零
l_linger = 0;
这种方式下,在调用closesocket的时候同样会立刻返回,但不会发送未发送完成的数据,而是通过一个REST包强制的关闭socket描述符,也就是强制的退出。
第三种
l_onoff非零
l_linger > 0
这种方式下,在调用closesocket的时候不会立刻返回,内核会延迟一段时间,这个时间就由l_linger得值来决定。如果超时时间到达之前,发送完未发送的数据(包括FIN包)并得到另一端的确认,closesocket会返回正确,socket描述符优雅性退出。否则,closesocket会直接返回错误值,未发送数据丢失,socket描述符被强制性退出。需要注意的时,如果socket描述符被设置为非堵塞型,则closesocket会直接返回值。
- 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断开连接的方式
- socket linger
- HTML笔记 (一)
- android webKit
- 如何提高团队编程水平
- 云计算与数据中心计算
- 【转载】紧急:中文版putty、WinSCP、SSH Secure后门!请立即更
- struct linger
- 编译c(tut)里,出现no such file错误
- XMLDocument方式读取XML文件(树结构)
- 企业开发:选Flex还是HTML5?
- typedef与define区别
- android 导入、创建文件到sdcard报错:Failed to push selection: Read-only file system
- IOCP与线程
- Oracle中Instr用法
- C#中的var类型