原文:TCP选项之SO_RCVBUF和SO_SNDBUF

每个TCPsocket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态。接收缓冲区把数据缓存入内核,应用进程一直没有调用read进行读取的话,此数据会一直缓存在相应socket的接收缓冲区内。再啰嗦一点,不管进程是否读取socket,对端发来的数据都会经由内核接收并且缓存到socket的内核接收缓 ...

2017-11-07 22:00 0 4685 推荐指数:

查看详情

TCP协议中的SO_LINGER选项

SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间。 以调用close()主动 ...

Sat Jul 20 03:16:00 CST 2013 0 16859
setsockopt 设置TCP选项SO_LINGER

SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。 没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间。 以调用close()主动关闭为例 ...

Mon Aug 21 03:16:00 CST 2017 0 1879
TCP协议中的SO_LINGER选项

TCP协议中的SO_LINGER选项 SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待 ...

Tue May 31 03:04:00 CST 2016 0 5561
SO_KEEPALIVE选项

SO_KEEPALIVE选项 】   对于面向连接的TCP socket,在实际应用中通常都要检测对端是否处于连接中,连接端口分两种情况:  1、连接正常关闭,调用close() shutdown()连接优雅关闭,send与recv立马返回错误,select返回SOCK_ERR;  2、连接 ...

Thu Oct 01 01:32:00 CST 2015 0 6002
SOCKET:SO_LINGER 选项

  好多次接触到SO_LINGER选项,但总是忘了这是干什么用的。现在整理一下,我才明白这个参数是用来设定“SOCKET在CLOSE时候是否等待缓冲区发送完成”这个特性的。下面是一些详细的说明。 setsockopt 设置 SO_LINGER 选项   此选项指定函数close对面 ...

Thu Apr 17 19:38:00 CST 2014 0 2910
关于SO_LINGER选项的使用

结论: linux开启SO_LINGER时,如果设置l_linger为非0, 不管是阻塞socket,非阻塞socket, 在这里都会发生阻塞, 而并不是UNP所讲到的( 非阻塞socket会立即返回EWOULDBLOCK) 测试结果见这里 https://www.nybek.com ...

Fri Apr 22 22:42:00 CST 2016 0 1634
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM