我有一个奇怪的问题,选择在Linux上的套接字采取意想不到的长。选择在Linux上慢速插槽
- 服务器接收数据的时候,接收套接字缓冲区大小为65536
- 客户端发送数据的时候,发送套接字缓冲区大小是4096
一般来说,数据转移真的很快。但是:客户端中用于测试写入是否会阻塞的选择需要很长时间(发送数据时没有调用select before:0.5s,在实际发送数据之前发送数据与调用select相同:5s)。问题是特定于缓冲区大小。如果我增加客户端中的发送缓冲区来让我们说4 * 4096,问题就会消失。
现在我想知道为什么选择需要这么长的特定缓冲区大小。代码示例如下:http://pastebin.com/PqisLnLU
相同的代码可以在Windows上运行,甚至可以在没有这些奇怪行为的Windows Windows子系统上运行。
谢谢!
“在客户端选择一个测试写入是否会阻塞的时间非常长(没有选择:0.5s,选择5s)” - 如何在没有选择的情况下进行选择...? – davmac
谢谢,修正了这个问题。 – RobertK