Udostępnij przez


Odłączanie serwera

Po zakończeniu odbierania danych od klienta i wysyłaniu danych z powrotem do klienta serwer rozłącza się z klientem i zamyka gniazdo.

Aby odłączyć i zamknąć gniazdo

  1. Po zakończeniu wysyłania danych do klienta przez serwer można wywołać funkcję shutdown, określając SD_SEND, aby zamknąć stronę wysyłania gniazdka. Dzięki temu klient może zwolnić niektóre zasoby dla tego gniazda. Aplikacja serwera nadal może odbierać dane w gniazdach.

    // 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. Po zakończeniu odbierania danych przez aplikację kliencką wywoływana jest funkcja closesocket w celu zamknięcia gniazda.

    Po zakończeniu pracy aplikacji klienckiej przy użyciu biblioteki DLL Windows Sockets funkcja WSACleanup jest wywoływana w celu wydania zasobów.

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

Kompletny kod źródłowy serwera

Rozpoczynanie pracy z Winsock

Aplikacja serwera Winsock

odbieranie i wysyłanie danych na serwerze

uruchamianie przykładowego kodu klienta i serwera Winsock