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.


Anmelden zum Antworten