Networking 在C语言中,如何将IPv6地址的网络字节顺序转换为主机字节顺序,反之亦然?

Networking 在C语言中,如何将IPv6地址的网络字节顺序转换为主机字节顺序,反之亦然?,networking,routing,ipv6,htonl,Networking,Routing,Ipv6,Htonl,有人能解释一下ipv6地址的网络字节顺序和主机字节顺序的概念吗?在ipv6中,实际上没有区别 以下假设在Linux和Windows上使用C: 在IPv4中,地址存储为无符号32位整数,因此它受系统的endianness的影响。因此,必须先将其转换为网络字节顺序,然后才能在线路上发送 但IPv6地址存储在sockaddr\u in6结构中的字段in6\u addr中,该字段也是一个包含16个无符号8位字符数组的结构 因此,由于IPv6地址始终有效地按网络字节顺序排列,因此在处理IPv6地址(例如从

有人能解释一下ipv6地址的网络字节顺序和主机字节顺序的概念吗?在ipv6中,实际上没有区别

以下假设在Linux和Windows上使用C:

在IPv4中,地址存储为无符号32位整数,因此它受系统的endianness的影响。因此,必须先将其转换为网络字节顺序,然后才能在线路上发送

但IPv6地址存储在
sockaddr\u in6
结构中的字段
in6\u addr
中,该字段也是一个包含16个无符号8位字符数组的结构

因此,由于IPv6地址始终有效地按网络字节顺序排列,因此在处理IPv6地址(例如从
getaddrinfo()
返回的地址)时,不必进行任何字节顺序转换。您可以简单地将6_addr中的
结构视为不透明数据。

可能重复的