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


Функция обратного вызова LPWSPSHUTDOWN (ws2spi.h)

Функция LPWSPShutdown отключает отправку и (или) получение в сокете.

Синтаксис

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

Параметры

[in] s

Дескриптор, определяющий сокет.

[in] how

Флаг, описывающий, какие типы операций больше не будут разрешены.

[out] lpErrno

Указатель на код ошибки.

Возвращаемое значение

Если ошибка не возникает, функция LPWSPShutdown возвращает ноль. В противном случае возвращается значение SOCKET_ERROR, а в lpErrno доступен определенный код ошибки.

Код ошибки Значение
WSAENETDOWN
Произошел сбой сетевой подсистемы.
WSAEINVAL
Способ недействителен или не согласуется с типом сокета. Например, SD_SEND используется с типом сокета UNI_RECV.
WSAEINPROGRESS
Функция вызывается при выполнении обратного вызова.
WSAENOTCONN
Сокет не подключен (только сокеты, ориентированные на подключение).
WSAENOTSOCK
Дескриптор не является сокетом.

Комментарии

Функция LPWSPShutdown используется на всех типах сокетов для отключения приема, передачи или и того, и другого.

Если SD_RECEIVE , последующие приемы в сокете будут запрещены. Это не влияет на нижние уровни протокола. Для сокетов TCP, если в сокете по-прежнему есть данные в очереди, ожидающие получения, или данные поступают впоследствии, подключение сбрасывается, так как данные не могут быть доставлены пользователю. Для сокетов UDP входящие датаграммы принимаются и помещаются в очередь. Ни в каких случаях не создается пакет ошибки ICMP.

Если SD_SEND , последующие отправки в сокет запрещены. Для сокетов TCP отправляется FIN. Настройка SD_BOTH отключает отправку и получение, как описано выше.

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

Примечание

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

Требования

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

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

LPWSPConnect

LPWSPSocket