我有一个sockaddr_storage
包含远程主机的 ipv4 地址和端口。我没见过这些struct
但之前我不知道如何将它转换成struct
我可以直接检索IP地址和端口号。我尝试过谷歌搜索struct
但还没有发现任何东西。关于如何执行此操作有什么建议吗?
Thanks
您可以将指针投射到struct sockaddr_in *
or struct sockaddr_in6 *
并直接访问成员,但这将引发一系列有关别名违规和错误编译问题的蠕虫病毒。
更好的方法是将指针传递给getnameinfo
与NI_NUMERICHOST
and NI_NUMERICSERV
flags 获取地址和端口的字符串表示形式。这样做的优点是无需额外代码即可支持 IPv4 和 IPv6,并且理论上也支持所有未来的地址类型。您可能必须将指针投射到void *
(or struct sockaddr *
明确地,如果您使用 C++)将其传递给getnameinfo
,但这应该不会引起问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)