Функция обратного вызова LPWSPSENDDISCONNECT (ws2spi.h)
Функция LPWSPSendDisconnect инициирует завершение подключения для сокета и отправляет данные об отключении.
Синтаксис
LPWSPSENDDISCONNECT Lpwspsenddisconnect;
int Lpwspsenddisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData,
[out] LPINT lpErrno
)
{...}
Параметры
[in] s
Дескриптор, определяющий сокет.
[in] lpOutboundDisconnectData
Указатель на исходящие данные отключения.
[out] lpErrno
Указатель на код ошибки.
Возвращаемое значение
Если ошибка не возникает, функция LPWSPSendDisconnect возвращает ноль. В противном случае возвращается значение SOCKET_ERROR, а в lpErrno доступен определенный код ошибки.
Код ошибки | Значение |
---|---|
Произошел сбой сетевой подсистемы. | |
Параметр lpOutboundDisconnectData не имеет значения NULL, и данные отключения не поддерживаются поставщиком услуг. | |
Выполняется блокировка вызова Windows Sockets или поставщик услуг по-прежнему обрабатывает функцию обратного вызова. | |
Сокет не подключен (только сокеты, ориентированные на подключение). | |
Дескриптор не является сокетом. | |
Параметр lpOutboundDisconnectData не полностью содержится в допустимой части адресного пространства пользователя. |
Комментарии
Функция LPWSPSendDisconnect используется на сокетах, ориентированных на подключение, чтобы отключить передачу и инициировать завершение соединения вместе с передачей данных об отключении, если таковые есть.
После успешной выдачи этой функции последующие отправки запрещены.
Параметр lpOutboundDisconnectData , если значение не равно NULL, указывает на буфер, содержащий исходящие данные об отключении, которые будут отправлены удаленной стороне.
Обратите внимание, что LPWSPSendDisconnect не закрывает сокет и что ресурсы, подключенные к сокету, не будут освобождены до вызова LPWSPCloseSocket .
Примечание
Функция LPWSPSendDisconnect не блокируется независимо от параметра SO_LINGER в сокете. Клиент WINDOWS Sockets SPI не должен полагаться на возможность повторного использования сокета после его отключения. В частности, поставщик сокетов Windows не требуется для поддержки использования LPWSPConnect в таком сокете.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | ws2spi.h |