写了个TCP server程序,使用完成端口,多个client连接server,server会同时向多个client发送数据,问题是:如果某个client连接的网络延时较大,发送比较耗时,是否会阻塞server向其他client发送数据?socket都是阻塞的我测试发现,即使为每个client建立一个发送线程,只要一个发送阻塞了,其他发送一直会等待。想确认一下,是这样的吗?因为从同一个server端口发出的缘故?
调试欢乐多
unsigned long ul = 0;
ret = ioctlsocket(sClient, FIONBIO, (unsigned long*)&ul); //设置为阻塞方式这么设的啊,我怎么查到的是完成端口就是阻塞的
1、调用WSASend的第四个参数lpNumberOfBytesSent,返回发送的字节数,有没有可能返回小于申请发送的字节数并不返回错误?
2、GetQueuedCompletionStatus获取到的WSASend的完成消息,没有错误的情况下,第三个参数dwBytesTransfered是否有可能小于申请发送的字节数?