我如何提高WSARecv的性能以使其尽快完成。 IT使用重叠和阻塞的套接字。
代码如下。

WSARecv(*socket, &Buffer, 1, &RecvCount, &Flag, NULL, NULL);

最佳答案

由于套接字正在阻塞,我的猜测是远程端未发送任何内容,而WSARecv在等待数据到达时正在阻塞。

哦,在WSARecv手册页上:

If both lpOverlapped and lpCompletionRoutine are NULL, the socket in this
function will be treated as a nonoverlapped socket.


这意味着尽管套接字可能重叠,但由于这两个指针均为NULL,因此此调用将不会这样对待它。您应该使用非阻塞套接字,或者使用重叠套接字,但不能同时使用两者。

关于c++ - 在套接字编程窗口中执行WSARecv大约需要3秒钟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8149972/

10-12 00:18
查看更多