Trennen des Servers

Nachdem der Server den Empfang von Daten vom Client und das Zurücksenden von Daten an den Client abgeschlossen hat, trennt der Server die Verbindung mit dem Client und beendet den Socket.

So trennen Und herunterfahren sie einen Socket

  1. Wenn der Server mit dem Senden von Daten an den Client fertig ist, kann die Funktion zum Herunterfahren aufgerufen werden, die SD SEND an, um die sendeseitige Seite des _ Sockets herunterfahren zu lassen. Dadurch kann der Client einige der Ressourcen für diesen Socket frei geben. Die Serveranwendung kann weiterhin Daten auf dem Socket empfangen.

    // shutdown the send half of the connection since no more data will be sent
    iResult = shutdown(ClientSocket, SD_SEND);
    if (iResult == SOCKET_ERROR) {
        printf("shutdown failed: %d\n", WSAGetLastError());
        closesocket(ClientSocket);
        WSACleanup();
        return 1;
    }
    
  2. Wenn die Clientanwendung mit dem Empfangen von Daten fertig ist, wird die closesocket-Funktion aufgerufen, um den Socket zu schließen.

    Wenn die Clientanwendung mithilfe der Windows Sockets-DLL abgeschlossen wird, wird die WSACleanup-Funktion aufgerufen, um Ressourcen frei zu geben.

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

Vollständiger Server-Quellcode

Erste Schritte mit Winsock

Winsock Server-Anwendung

Empfangen und Senden von Daten auf dem Server

Ausführen des Winsock-Client- und -Servercodebeispiels