如何确定套接字句柄是 ipv4 还是 ipv6?
how to determine if a socket handle is ipv4 or ipv6?
给定一个套接字句柄,有什么方法可以确定它是 AF_INET 还是 AF_INET6,例如创建套接字的第一个参数(https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket)?我正在 Windows.
编程
getsockopt
函数:
int getsockopt(
[in] SOCKET s,
[in] int level,
[in] int optname,
[out] char *optval,
[in, out] int *optlen
);
如果optname
参数是SO_PROTOCOL_INFO
,缓冲区应该包含WSAPROTOCOL_INFO
结构。它的 iAddressFamily
成员将是 AF_INET
或 AF_INET6
。
给定一个套接字句柄,有什么方法可以确定它是 AF_INET 还是 AF_INET6,例如创建套接字的第一个参数(https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket)?我正在 Windows.
编程getsockopt
函数:
int getsockopt(
[in] SOCKET s,
[in] int level,
[in] int optname,
[out] char *optval,
[in, out] int *optlen
);
如果optname
参数是SO_PROTOCOL_INFO
,缓冲区应该包含WSAPROTOCOL_INFO
结构。它的 iAddressFamily
成员将是 AF_INET
或 AF_INET6
。