Trennen des Clients

Nachdem der Client das Senden und Empfangen von Daten abgeschlossen hat, wird die Verbindung vom Server getrennt und der Socket heruntergefahren.

So trennen Und Herunterfahren eines Sockets

  1. Wenn der Client mit dem Senden von Daten an den Server fertig ist, kann die Funktion zum Herunterfahren aufgerufen werden, indem SD_SEND angegeben wird, um die Sendende Seite des Sockets herunterzufahren. Dadurch kann der Server einige Ressourcen für diesen Socket freigeben. Die Clientanwendung kann weiterhin Daten auf dem Socket empfangen.

    // 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. Wenn die Clientanwendung mit dem Empfang von Daten fertig ist, wird die Funktion closesocket aufgerufen, um den Socket zu schließen.

    Wenn die Clientanwendung mithilfe der Windows Sockets-DLL abgeschlossen ist, wird die WSACleanup-Funktion aufgerufen, um Ressourcen freizugeben.

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

Vollständiger Clientquellcode

Erste Schritte mit Winsock

Winsock-Clientanwendung

Senden und Empfangen von Daten auf dem Client