htons和ntonhs输出的结果是一样的,并且我的机器是小端存储的,htons并没有把主机字节序转换成网络字节序。
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
如果是脑筋急转弯,我猜题主用0x0000或0x1111做的测试。
说正经的,你可能这样测试:assert(htons(0x1234) == ntohs(0x1234)),
因为电脑是小端字节序,因此0x1234经过htons变换后输出0x3412,ntohs(0x1234)也输出0x3412,让楼主产生了“没有进行转换”的错觉。
实际情况是,两次转换都非常成功,第一次将本机的0x1234转换成网络字节序0x3412,第二次将网络序0x1234转换成本机0x3412,因此结果相同。
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消