Поделиться через


Отключение клиента

После завершения отправки и получения данных клиент отключается от сервера и завершает работу сокета.

Отключение и завершение работы сокета

  1. Когда клиент завершает отправку данных на сервер, можно вызвать функцию завершения работы , указав SD_SEND для завершения работы отправляющей стороны сокета. Это позволяет серверу освободить некоторые ресурсы для этого сокета. Клиентское приложение по-прежнему может получать данные в сокете.

    // 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. Когда клиентское приложение завершает получение данных, вызывается функция closesocket для закрытия сокета.

    Когда клиентское приложение завершается с помощью библиотеки DLL Windows Sockets, вызывается функция WSACleanup для освобождения ресурсов.

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

Полный исходный код клиента

начало работы с Winsock

Клиентское приложение Winsock

Отправка и получение данных на клиенте