Функция WSASendDisconnect (winsock2.h)
Функция WSASendDisconnect инициирует завершение подключения для сокета и отправляет данные об отключении.
Синтаксис
int WSAAPI WSASendDisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData
);
Параметры
[in] s
Дескриптор, определяющий сокет.
[in] lpOutboundDisconnectData
Указатель на исходящие данные отключения.
Возвращаемое значение
Если ошибка не возникает, WSASendDisconnect возвращает ноль. В противном случае возвращается значение SOCKET_ERROR, а определенный код ошибки можно получить, вызвав WSAGetLastError.
Код ошибки | Значение |
---|---|
Перед использованием этой функции должен произойти успешный вызов WSAStartup . | |
Произошел сбой сетевой подсистемы. | |
Параметр lpOutboundDisconnectData не имеет значения NULL, и данные отключения не поддерживаются поставщиком услуг. | |
Выполняется блокирующий вызов Windows Sockets 1.1 или поставщик услуг по-прежнему обрабатывает функцию обратного вызова. | |
Сокет не подключен (только сокеты, ориентированные на подключение). | |
Дескриптор не является сокетом. | |
Параметр lpOutboundDisconnectData не полностью содержится в допустимой части адресного пространства пользователя. |
Комментарии
Функция WSASendDisconnect используется на сокетах, ориентированных на подключение, чтобы отключить передачу и инициировать завершение соединения вместе с передачей данных об отключении, если таковые есть. Это эквивалентно завершению работы (SD_SEND), за исключением того, что WSASendDisconnect также позволяет отправлять данные об отключении (в протоколах, поддерживающих их).
После успешной выдачи этой функции последующие отправки запрещены.
Параметр lpOutboundDisconnectData , если он не равен NULL, указывает на буфер, содержащий исходящие данные отключения, которые будут отправлены удаленной стороне для извлечения с помощью WSARecvDisconnect.
Функция WSASendDisconnect не блокируется независимо от параметра SO_LINGER в сокете.
Приложение не должно полагаться на возможность повторного использования сокета после вызова WSASendDisconnect. В частности, поставщик сокетов Windows не требуется для поддержки использования подключения/WSAConnect к такому сокету.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winsock2.h |
Библиотека | Ws2_32.lib |
DLL | Ws2_32.dll |