Disconnessione del client

Una volta completato l'invio e la ricezione dei dati, il client disconnette dal server e arresta il socket.

Per disconnettere e arrestare un socket

  1. Quando il client viene inviato dati al server, la funzione di arresto può essere chiamata specificando SD_SEND per arrestare il lato di invio del socket. Ciò consente al server di rilasciare alcune delle risorse per questo socket. L'applicazione client può comunque ricevere dati nel socket.

    // shutdown the send half of the connection since no more data will be sent
    iResult = shutdown(ConnectSocket, SD_SEND);
    if (iResult == SOCKET_ERROR) {
        printf("shutdown failed: %d\n", WSAGetLastError());
        closesocket(ConnectSocket);
        WSACleanup();
        return 1;
    }
    
  2. Quando l'applicazione client riceve i dati, la funzione closesocket viene chiamata per chiudere il socket.

    Al termine dell'applicazione client usando la DLL Di Windows Sockets, la funzione WSACleanup viene chiamata per rilasciare le risorse.

    // cleanup
    closesocket(ConnectSocket);
    WSACleanup();
    
    return 0;
    

Codice sorgente client completo

Introduzione con Winsock

Applicazione client Winsock

Invio e ricezione di dati nel client