Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После того как сервер завершит получение данных от клиента и отправку данных обратно клиенту, он отключается от клиента и завершает работу сокета.
Отключить и завершить работу сокета
Когда сервер завершает отправку данных клиенту, можно вызвать функцию , указав SD_SEND для остановки отправки на стороне сокета. Это позволяет клиенту освободить некоторые ресурсы для этого сокета. Серверное приложение по-прежнему может получать данные в сокете.
// 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; }После завершения получения данных клиентское приложение вызывает функцию closesocket , чтобы закрыть сокет.
Когда клиентское приложение завершает выполнение с использованием библиотеки Windows Sockets DLL, для освобождения ресурсов вызывается функция WSACleanup.
// cleanup closesocket(ClientSocket); WSACleanup(); return 0;
Полный исходный код сервера
Связанные разделы