Valori restituiti in caso di errore della funzione
La costante manifesto SOCKET_ERROR viene fornita per il controllo dell'errore della funzione. Anche se l'uso di questa costante non è obbligatorio, è consigliabile. Nell'esempio seguente viene illustrato l'uso della costante SOCKET_ERROR.
Stile BSD tipico (non funziona in Windows)
r = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (r == -1 /* or r < 0 */
&& errno == EWOULDBLOCK) {
printf("recv failed with error: EWOULDBLOCK\n");
}
Stile Di Windows
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult == SOCKET_ERROR ) {
iError = WSAGetLastError();
if (iError == WSAEWOULDBLOCK)
printf("recv failed with error: WSAEWOULDBLOCK\n");
else
printf("recv failed with error: %ld\n", iError);
closesocket(ClientSocket);
WSACleanup();
return 1;
}
Argomenti correlati
-
codici di errore - errno, h_errno e WSAGetLastError