Socket缓冲区满,请大侠出招
小弟最近写个测试程序,一个程序起1000个线程模拟1000个客户端,每线程创建一个socket长连接向服务器发起连接并传送数据,每线程采用重叠IO的方式传送18K的数据后等待几分钟,再次发送,如此循环。
测试中服务器每次都正确收到了数据(显示接受数据的大小和发送的一样),但是客户端却发送到第三个循环以后就出现10055的错误(缓冲区满或队列满)。照理说服务器收取了数据以后客户端的发送缓冲区应该被释放掉,为什么会有这样的问题?
看了前辈们的帖子,也尝试在客户端的WSASend之前先select检查一下,如果缓冲满了就让线程等待5秒再试,但是实际测试发现程序怎么骗过了select以后还是在WSASend的时候出现缓冲区满的错误,小弟无计可施,请大侠们指点。