UnTraDe
UnTraDe

Reputation: 3867

C++ Winsock recv not blocking

I'm devleoping a server in c++ and when im using recv() in a while loop it returns all the time length of -1 and also continue the loop without blocking.

while(true)
{
   char buffer[1024];
   int dataLength =  recv(socket, buffer, 1024, 0)
   cout << dataLength;
}

output: -1-1-1-1-1-1-1-1-1.............

Anyone knows how to make this socket to block until it recievs data?

Thanks in advance!

Upvotes: 0

Views: 2091

Answers (2)

justcoder
justcoder

Reputation: 76

maybe there is an error during initilization try calling GetLastError() and printing the result after each call

Upvotes: 2

volatile void
volatile void

Reputation: 37

As James suggested, check if a socket error occured. recv()s default behaviour is to block. See also this thread here.

Upvotes: 0

Related Questions