我对socket设置了非阻塞模式
ioctlsocket(Socket, FIONBIO, (unsigned long*)&ul);
打算对每个连接投递0字节的WSARevc,
然后GetQueuedCompletionStatus返回的时候
用非阻塞的recv根据消息头读取一个个完整的逻辑包
现在问题是:
使用了非阻塞模式之后,
WSASend调用之后,GetQueuedCompletionStatus会立即返回结果
我试验了一下阻塞和非阻塞的socket分别发送100m缓存的情况,
发现阻塞socket会等到对等方接收完毕之后GetQueuedCompletionStatus才返回
而非阻塞的socket会立即返回结果
感觉如果使用非阻塞模式的话,就不能对发送情况进行监控了
请问各位有经验的大大有什么好的解决办法?