我在C++中開發一個服務器,當im在while循環中使用recv()時,它將返回-1的所有時間長度,並且繼續循環而不會阻塞。C++ Winsock recv不會阻塞
while(true)
{
char buffer[1024];
int dataLength = recv(socket, buffer, 1024, 0)
cout << dataLength;
}
輸出:-1-1-1-1-1-1-1-1-1 .............
任何人知道如何使這個套接字阻塞,直到它recv數據?
在此先感謝!
什麼WSAGetLastError返回後打印結果? –
在下面答案給出的線程的幫助下,我設法打印出什麼WSAGetLastError,它返回10057 – UnTraDe
'WSAENOTCONN 10057(0x2749) 由於套接字未連接,發送或接收數據請求被禁止一個使用sendto調用的數據報套接字)沒有提供地址。「 - [系統錯誤代碼](http://msdn.microsoft.com/en-us/library/windows/desktop/ms681391(v = vs.85)。 aspx) - 學會愛他們。 – chris