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


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

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

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

  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

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