sin*_*nan 10 ip haskell network-programming
哈斯克尔network
小号HostAddress
说:"网络字节顺序",在它的文档
但是,如果我以网络字节顺序(big-endian)传递地址,它的show instance打印错误的地址:
Prelude Network.Socket> :m + Network.Socket Data.Bits
Prelude Network.Socket Data.Bits> SockAddrInet (fromInteger 50) (192 `shiftL` 24)
0.0.0.192:50
Prelude Network.Socket Data.Bits>
Run Code Online (Sandbox Code Playgroud)
这是预期的吗?为什么它会打印小端的东西?我应该以大端还是小端格式传递IP地址?
看起来生成 IPv4 地址的常见方法是使用Socket.inet_addr
,例如:
do x <- inet_addr "192.0.0.0"; return $ SockAddrInet 50 x
Run Code Online (Sandbox Code Playgroud)
或者,等效地:
inet_addr "192.0.0.0" >>= (return . SockAddrInet 50)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
221 次 |
最近记录: |