Функция WSADeleteSocketPeerTargetName (ws2tcpip.h)
Функция WSADeleteSocketPeerTargetName удаляет связь между именем целевого узла и IP-адресом сокета. После успешного возврата связь между IP-адресом и целевым именем в будущем не будет.
Синтаксис
INT WSAAPI WSADeleteSocketPeerTargetName(
[in] SOCKET Socket,
[in] const sockaddr *PeerAddr,
[in] ULONG PeerAddrLen,
[in, optional] LPWSAOVERLAPPED Overlapped,
[in, optional] LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
Параметры
[in] Socket
Дескриптор, определяющий сокет, в котором удаляется имя целевого узла.
[in] PeerAddr
IP-адрес однорангового узла, для которого удаляется целевое имя.
[in] PeerAddrLen
Размер параметра PeerAddr (в байтах).
[in, optional] Overlapped
Указатель на структуру WSAOVERLAPPED . Этот параметр игнорируется для неперекрывающихся сокетов.
[in, optional] CompletionRoutine
Указатель на подпрограмму завершения, вызываемую при завершении операции. Этот параметр игнорируется для неперекрывающихся сокетов.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение равно 0. В противном случае возвращается значение SOCKET_ERROR , а определенный код ошибки можно получить, вызвав WSAGetLastError.
Ниже перечислены некоторые возможные коды ошибок.
Код ошибки | Значение |
---|---|
Указанное семейство адресов не поддерживается. | |
Система обнаружила недопустимый указатель адреса при попытке использовать аргумент указателя вызова. Эта ошибка возвращается, если параметр PeerAddr был указателем NULL . | |
Передан недопустимый параметр. Эта ошибка возвращается, если сокет, переданный в параметре Socket , не был создан с семейством адресов AF_INET или AF_INET6 и типом сокета SOCK_DGRAM или SOCK_STREAM. | |
Переданный буфер был слишком мал. | |
Дескриптор, передаваемый в параметре Socket , не является допустимым сокетом. |
Комментарии
Функция WSADeleteSocketPeerTargetName предоставляет метод для удаления связи между целевым именем однорангового узла и IP-адресом сокета. Эта функция используется для удаления имени целевого объекта однорангового узла, которое ранее было задано с помощью функции WSASetSocketPeerTargetName . После возврата функции WSADeleteSocketPeerTargetName не будет использоваться ранее указанное целевое имя. Эта функция в основном предназначена для использования клиентами без подключения (например, сокетом, созданным с типом SOCK_DGRAM или протоколом IPPROTO_UDP) после завершения подключения с IP-адресом, связанным с целевым именем однорангового узла. Для клиентов, ориентированных на подключение (например, сокет, созданный с типом SOCK_STREAM или протоколом, для IPPROTO_TCP) эту функцию вызывать не следует.
Функция WSADeleteSocketPeerTargetName упрощает вызов функции WSAIoctl с параметром dwIoControlCode , имеющим значение SIO_DELETE_PEER_TARGET_NAME.
Если не выполняются следующие условия, будет возвращена ошибка.
- Семейство адресов параметра Socket должно быть AF_INET или AF_INET6.
- Тип сокета должен быть SOCK_STREAM или SOCK_DGRAM.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | ws2tcpip.h |
Библиотека | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |
См. также раздел
Использование расширений безопасных сокетов