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


Функция обратного вызова 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 доступен определенный код ошибки.

Код ошибки Значение
WSAENETDOWN
Произошел сбой сетевой подсистемы.
WSAENOPROTOOPT
Параметр lpOutboundDisconnectData не имеет значения NULL, и данные отключения не поддерживаются поставщиком услуг.
WSAEINPROGRESS
Выполняется блокировка вызова Windows Sockets или поставщик услуг по-прежнему обрабатывает функцию обратного вызова.
WSAENOTCONN
Сокет не подключен (только сокеты, ориентированные на подключение).
WSAENOTSOCK
Дескриптор не является сокетом.
WSAEFAULT
Параметр lpOutboundDisconnectData не полностью содержится в допустимой части адресного пространства пользователя.

Комментарии

Функция LPWSPSendDisconnect используется на сокетах, ориентированных на подключение, чтобы отключить передачу и инициировать завершение соединения вместе с передачей данных об отключении, если таковые есть.

После успешной выдачи этой функции последующие отправки запрещены.

Параметр lpOutboundDisconnectData , если значение не равно NULL, указывает на буфер, содержащий исходящие данные об отключении, которые будут отправлены удаленной стороне.

Обратите внимание, что LPWSPSendDisconnect не закрывает сокет и что ресурсы, подключенные к сокету, не будут освобождены до вызова LPWSPCloseSocket .

Примечание

Функция LPWSPSendDisconnect не блокируется независимо от параметра SO_LINGER в сокете. Клиент WINDOWS Sockets SPI не должен полагаться на возможность повторного использования сокета после его отключения. В частности, поставщик сокетов Windows не требуется для поддержки использования LPWSPConnect в таком сокете.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть ws2spi.h

См. также раздел

LPWSPConnect

LPWSPSocket