socket Non-Blocking funktioniert nicht?
-
hi,
ich hab hier eine UDP Socket, der Daten empfangen soll. Der Socket soll aber Non-Blocking sein. Das setzen von "non-Blocking" funktioniert noch ohne Fehler. Aber der recv() schlägt dann immer mit SOCKET_ERROR fehl.
Ich verstehe nicht ganz woran das liegt. Kann mir dazu jemand etwas mehr sagen? Ich blicke da nicht durch...
char buffer[1024]; DWORD bufLen=1024; DWORD r=0; ...... ULONG nonblocking = 1; if (ioctlsocket(sock, FIONBIO, &nonblocking) == SOCKET_ERROR) return false; if ((r = recv(sock, buffer, bufLen, 0)) == SOCKET_ERROR) { return -1; } else { //do }
-
Teile uns noch den Fehlercode mit. (WSAGetLastError()).
Vielleicht ist es ja nur WSAEWOULDBLOCK, was heißen würde das gerade keine Pakete im Empfangspuffer liegen.