关于tcp缓冲区问题
用vs2008在win7中写了一个小程序,测试tcp中send阻塞的问题。
我用
int nSize = 0;
int x=4;
getsockopt((SOCKET)peer.get_handle(), SOL_SOCKET, SO_RCVBUF, (char *)&nSize, &x);
获取socket缓冲区大小为8K.
我在服务器端recv前面Slee(10000)也就是10秒钟,然后我在客户端中发送4*8K数据,为什么send不阻塞,发送成功。
如果循环发送每次send 8K数据,第四次就会阻塞,网上说,缓冲区满了,send就会阻塞,不知道为什么第一次发送大数据不阻塞,大神帮忙解释一下。