为了账号安全,请及时绑定邮箱和手机立即绑定

为什么函数没有转换成网络字节序?

为什么函数没有转换成网络字节序?

梵蒂冈之花 2023-03-19 21:17:07
htons和ntonhs输出的结果是一样的,并且我的机器是小端存储的,htons并没有把主机字节序转换成网络字节序。
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

如果是脑筋急转弯,我猜题主用0x0000或0x1111做的测试。
说正经的,你可能这样测试:assert(htons(0x1234) == ntohs(0x1234)),
因为电脑是小端字节序,因此0x1234经过htons变换后输出0x3412,ntohs(0x1234)也输出0x3412,让楼主产生了“没有进行转换”的错觉。
实际情况是,两次转换都非常成功,第一次将本机的0x1234转换成网络字节序0x3412,第二次将网络序0x1234转换成本机0x3412,因此结果相同。

查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信