Книга: Системное программирование в среде Windows
Отключение и закрытие сокетов
Отключение и закрытие сокетов
Для отключения сокетов применяется функция shutdown(s, how). Аргумент how может принимать одно из двух значений: 1, указывающее на то, что соединение может быть разорвано только для посылки сообщений, и 2, соответствующее разрыву соединения как для посылки, так и для приема сообщений. Функция shutdown не освобождает ресурсы, связанные с сокетом, но гарантирует завершение посылки и приема всех данных до закрытия сокета. Тем не менее, после вызова функции shutdown приложение уже не должно использовать этот сокет.
Когда работа с сокетом закончена, его следует закрыть, вызвав функцию closesocket(SOCKET s). Сначала сервер закрывает сокет, созданный функцией accept, а не прослушивающий сокет, созданный с помощью функции socket. Сервер должен закрывать прослушивающий сокет только тогда, когда завершает работу или прекращает принимать клиентские запросы соединения. Даже если вы работаете с сокетом как с дескриптором типа HANDLE и используете функции ReadFile и WriteFile, уничтожить сокет одним только вызовом функции CloseHandle вам не удастся; для этого следует использовать функцию closesocket.
- 4.4.2. Открытие и закрытие файлов
- Закрытие файлов
- Отключение
- Отключение питания
- 11.5. Закрытие месяца
- Включение и отключение синхронного вывода
- Когда звонит телефон, начинает загружаться компьютер. Помогает только отключение кабеля от модема. Почему так происходит...
- Стоит ли заниматься отключением ненужных служб при большом объеме оперативной памяти?
- Отключение контекстного меню Рабочего стола
- 6.3. Создание, открытие, закрытие, сохранение и печать документов
- 4.4.2.2. Закрытие всех открытых файлов
- Отключение ненужных серверов