network包中HostAddress
和HostAddress6
的文档说:
-- | Network byte order.
type HostAddress = Word32
-- | Host byte order.
type HostAddress6 = (Word32, Word32, Word32, Word32)
这个字节顺序实际意味着什么?毕竟,Word32
应该是一个独立于主机endianness的数字,只有当(de)序列化时,字节序才有意义。
我的目标是使用IPv4或IPv6地址来构建正确的SockAddr
值。
对于HostAddress
,似乎在小端架构上翻转了字节顺序,因为show $ SockAddrInet 0 0x0100007f
给出了"127.0.0.1:0"
。并show $ SockAddrInet6 0 0 (0,0,0,1) 0
给出"[::1]:0
所以字节顺序似乎正确。但目前我还没有机会在大端架构上进行测试。