我不确定为什么标准库中存在htons
和ntohs
两个函数。它们的作用完全相同,除非我搞错了什么!
htonl
和ntohl
也是如此。
我不确定为什么标准库中存在htons
和ntohs
两个函数。它们的作用完全相同,除非我搞错了什么!
htonl
和ntohl
也是如此。
它们生成自文档化的代码,告诉读者数据是主机序还是网络序。
这是防止计算机具有不同于大端或小端的某种异常字节顺序(endianness)时使用的情况。
例如,如果值0x0A0B0C0D
在内部表示为0B 0C 0D 0A
,那么将此表示传递给htonl
将返回0x0A0B0C0D
,但ntohl
将返回0x0C0D0A0B
。
我不知道是否存在这样的表示形式,但主机到网络和网络到主机的单独函数的存在使其成为可能。