一例TCP优雅关闭失败SO_LINGER选项未起作用
2014-12-31 15:37
344 查看
通过setsockopt :SO_LINGER 选项可以指定函数close对面向连接的协议如何操作。
内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。
但是如果close时,接收缓冲区有未接收数据,则操作系统会直接发送RST报文结束链接,也就是说TCP链接不会优雅关闭。
所以,如果希望链接被优雅关闭,应在接受完缓冲区内的所有数据后再调用close。
内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。
但是如果close时,接收缓冲区有未接收数据,则操作系统会直接发送RST报文结束链接,也就是说TCP链接不会优雅关闭。
所以,如果希望链接被优雅关闭,应在接受完缓冲区内的所有数据后再调用close。
相关文章推荐
- tcp的关闭(shutdonw、close、SO_LINGER选项)与 连接断开情形判断
- TCP的选项SO_LINGER设置延时关闭
- SO_LINGER和优雅关闭连接
- TCP选项之SO_LINGER
- SO_LINGER和优雅关闭连接
- 慎用TCP的选项SO_LINGER
- 慎用TCP的选项SO_LINGER
- 慎用TCP的选项SO_LINGER
- TCP协议中的SO_LINGER选项
- setsockopt 设置TCP的选项SO_LINGER
- tcp 选项:SO_LINGER祥解(转)
- Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE
- TCP选项之SO_LINGER
- TCP选项之SO_LINGER
- setsockopt 设置 SO_LINGER 选项 关闭连接
- TCP选项:SO_LINGER和TCP_DEFER_ACCEPT
- TCP协议中的SO_LINGER选项
- TCP选项之SO_LINGER
- 优雅关闭socket的方法:SO_LINGER
- TCP选项之SO_LINGER的作用与意义