0
如何提高WSARecv的性能以儘可能快地完成。 IT使用重疊和阻塞的套接字。代碼如下。WSARecv需要3秒鐘才能在套接字編程窗口中執行?
WSARecv(*socket, &Buffer, 1, &RecvCount, &Flag, NULL, NULL);
如何提高WSARecv的性能以儘可能快地完成。 IT使用重疊和阻塞的套接字。代碼如下。WSARecv需要3秒鐘才能在套接字編程窗口中執行?
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。您應該使用非阻塞套接字,或使用重疊,但不能同時使用兩者。
好的,如果我做了一個無阻塞的套接字,會有發送和接收問題嗎? – Ershad
@Ershad編輯我的答案。我建議你閱讀參考手冊頁,並正確使用重疊的套接字,並且電話將不再阻止。 –
對不起,我現在明白了。讓我檢查一下。 – Ershad