Функция обратного вызова 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 доступен определенный код ошибки.
Код ошибки | Значение |
---|---|
Произошел сбой сетевой подсистемы. | |
Способ недействителен или не согласуется с типом сокета. Например, SD_SEND используется с типом сокета UNI_RECV. | |
Функция вызывается при выполнении обратного вызова. | |
Сокет не подключен (только сокеты, ориентированные на подключение). | |
Дескриптор не является сокетом. |
Комментарии
Функция 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 |