SO_LINGER选项用于控制close系统调用在关闭TCP连接时的行为。在默认情况下,当说我们使用close系统调用关闭一个socket时,close立即返回,TCP模块负责把socket对应的TCP发送缓冲区中残留的数据发送给对方。
根据linger结构体中两个变量的不同值,会有三种不同的结果:
1、l_onoff==0 ,此时SO_LINGER选项不起作用,close用默认行为来关闭so...
分类:
其他好文 时间:
2014-10-26 21:15:36
阅读次数:
146
当调用closesocket关闭套接字时,SO_LINGER将决定系统如何处理残存在套接字发送队列中的数据。处理方式无非两种:丢弃或者将数据继续发送至对端,优雅关闭连接TCP_NODELAY: 表示立即发送数据.SO_RESUSEADDR: 表示是否允许重用Socket 所绑定的本地地址.SO_TI...
分类:
其他好文 时间:
2014-10-21 00:37:50
阅读次数:
286
接着上一篇网络编程Socket之TCP之close/shutdown详解...
分类:
其他好文 时间:
2014-07-23 13:11:26
阅读次数:
202
close:
当套接字的引用计数为0的时候才会引发TCP的四分组连接终止序列;
shutdown:
不用管套接字的引用计数就激发TCP的正常连接终止序列;
这里由一个SO_LINGER套接字选项
struct linger {
int l_onoff; /* 0 = off, nozero = on */
int l_linger; ...
分类:
其他好文 时间:
2014-07-20 22:24:53
阅读次数:
367
### 背景
银时跟我讲,想从 Netty3迁移到Netty4 。
问其原因是因为 Netty3在容器里会报错,错误堆栈:
java.io.IOException: 无法立即完成一个非阻止性套接字操作。
at sun.nio.ch.SocketDispatcher.close0(Native Method)
at sun.nio.ch.SocketDisp...
分类:
其他好文 时间:
2014-05-07 06:30:21
阅读次数:
425