最近朋友问我一个问题,说通过TCP每次发送10个字节,连续发3次,问客户端需要做几次接收操作。这个问题自由度很高。客户端阻塞接收的情况下,还跟接收水线的设置值有关。
提到水线,上网搜索了一会,有的博客上说SO_RCVLOWAT只对read和recv有影响,select和poll不理会该选项的数值。后来自己亲自写了两个小程序,测试一下。发现在SUSE Linux Enterprise Server 10发行版本、内核版本:2.6.16.60的机器上的情况是:对select、read/recv函数都有作用,就是说水线的设置对于select是否返回可读是有影响的。
本文探讨了TCP中接收水线(SO_RCVLOWAT)的设置对于客户端接收操作的影响,并通过实验证明其不仅影响read/recv函数,也会影响select函数的返回状态。

被折叠的 条评论
为什么被折叠?



