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 指针,则返回此错误。 | |
传递的参数无效。 如果未使用 AF_INET 或 AF_INET6 的地址系列以及套接字类型为 SOCK_DGRAM 或 SOCK_STREAM 创建在 Socket 参数中传递的套接字,则返回此错误。 | |
传递的缓冲区太小。 | |
在 Socket 参数中传递的描述符不是有效的套接字。 |
注解
WSADeleteSocketPeerTargetName 函数提供了一个方法,用于删除对等目标名称和套接字 IP 地址之间的关联。 此函数用于删除以前使用 WSASetSocketPeerTargetName 函数设置的对等目标名称。 WSADeleteSocketPeerTargetName 函数返回后,将来不会使用以前指定的目标名称对 IP 地址进行身份验证。 此函数主要用于无连接客户端 (例如,创建的套接字的类型设置为 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 |
标头 | ws2tcpip.h |
Library | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |