如何知道运行时是否使用sockaddr_storage

时间:2017-10-25 11:53:58

标签: c sockets

运行时我想知道堆栈定义的struct sockaddr_storage是否已分配给任何IP地址(IPv4或IPv6)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

检查ss_family字段。 IPv4地址为AF_INET,IPv6地址为AF_INET6。然后,您可以相应地将sockaddr_storage输入sockaddr_insockaddr_in6,以便分别访问sockaddr_in::sin_addrsockaddr_in6::sin6_addr字段,以确保它未设置为零。