Valeurs de retour en cas d’échec de la fonction

L’erreur de socket _ de constante de manifeste est fournie pour vérifier l’échec de la fonction. Bien que l’utilisation de cette constante ne soit pas obligatoire, elle est recommandée. L’exemple suivant illustre l’utilisation de la constante d' _ erreur de socket .

Style BSD classique (ne fonctionne pas sur Windows)

        r = recv(ClientSocket, recvbuf, recvbuflen, 0);
        if (r == -1     /* or r < 0 */
            && errno == EWOULDBLOCK) {
            printf("recv failed with error: EWOULDBLOCK\n");
        }    

Windows Style

        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;
        }    

Codes d’erreur-errno, h _ errno et WSAGetLastError

Gestion des erreurs Winsock

Portage d’applications de socket vers Winsock

Considérations sur la programmation Winsock

Windows Codes d’erreur des sockets