结论: linux开启SO_LINGER时,如果设置l_linger为非0, 不管是阻塞socket,非阻塞socket, 在这里都会发生阻塞, 而并不是UNP所讲到的( 非阻塞socket会立即返回EWOULDBLOCK) 测试结果见这里 https://www.nybek.com/blog/20 ...
分类:
其他好文 时间:
2016-04-22 16:02:02
阅读次数:
482
socket.setsockopt(level,optname,value) ↑ ↑ ↑ →[SO_KEEPALIVE , ↑ SO_LINGER , ↑ SO_RCVBUF , ...
分类:
其他好文 时间:
2016-01-15 14:24:25
阅读次数:
222
终止一个连接的正常方式是发送FIN。在发送缓冲区中所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但我们有时也有可能发送一个RST报文段而不是FIN来中途关闭一个连接。这称为异常关闭。进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用SO_LINGER选项来控制。异常...
分类:
其他好文 时间:
2015-12-25 23:44:43
阅读次数:
163
【SO_LINGER】 在默认情况下,当调用close关闭socke的使用,close会立即返回,但是,如果send buffer中还有数据,系统会试着先把send buffer中的数据发送出去,然后close才返回. SO_LINGER选项则是用来修改这种默认操作的.于SO_LINGER相关联.....
分类:
其他好文 时间:
2015-09-30 18:07:03
阅读次数:
167
http://blog.csdn.net/ccnyou/article/details/8913334原文:http://unliminet.blog.51cto.com/380895/346686当调用closesocket关闭套接字时,SO_LINGER将决定系统如何处理残存在套接字发送队列中的...
分类:
其他好文 时间:
2015-09-26 00:18:42
阅读次数:
236
setsockopt 设置 SO_LINGER 选项
此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。
SO_LINGER选项用来改变此缺省设置。使用如下结构:
struct linger {
int l_onoff; /* 0...
分类:
其他好文 时间:
2015-05-25 20:24:45
阅读次数:
140
socket调用功能描述accept()*响应连接请求并新建套接口,原来的套接口则返回监听状态(服务器用)bind()把一个本地的名字和一个套接口捆绑起来closesocket()*把套接口从拥有对象参考表中取消。该函数只在so_linger被设置时才会阻塞connect()*与服务器建立连接(client端..
分类:
其他好文 时间:
2015-04-01 13:36:38
阅读次数:
187
开始搞netty了查了下资料在使用NIO的时候,最好不要配置SO_LINGER,假设设置了该參数,在close的时候如缓冲区有数据待写出,会抛出IOException。
分类:
编程语言 时间:
2015-02-11 10:50:54
阅读次数:
240
setsockopt设置 SO_LINGER 选项最近和后台的server通信 server发现在读数据的时候 客户端已经关闭连接 ,也就是 没有等服务器读完数据,客户端已经fclose了, 联调以后的发现需要设置这个选项:so_linger此选项指定函数close对面向连接的协议如何操作(如TCP...
分类:
其他好文 时间:
2015-01-21 19:44:38
阅读次数:
170
选项 public final static int TCP_NODELAY = 0x0001; public final static int SO_REUSEADDR = 0x04; public final static int SO_LINGER = 0x0080; ...
分类:
编程语言 时间:
2014-11-06 01:55:53
阅读次数:
294