什么时候需要高低字节序转换,即ntohs()函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候需要高低字节序转换,即ntohs()函数相关的知识,希望对你有一定的参考价值。

什么时候需要高低字节序转换,即ntohs()函数
跨操作系统吗????
请详细解释,谢谢
字节顺序是指什么,有例子的话更好理解
1 2网络上就编程 2 1 了?

ntohs()
网络字节序->主机字节序

网络字节序规定了数据在网络中传输的字节顺序,各主机再根据自身的环境将网络字节序转换成适应自身的主机字节序。

数值:0x1245
在X86系统中这样存储
内存地址 数据
00 12
01 45

发送时从低地址读取数据
所以发送顺序为 12 45

而在其它系统中有可能这样存储:
内存地址 数据
00 45
01 12
如果不转换为网络字节序,按 45 12发送,则X86系统就理解为0x4512了。
参考技术A 不同的操作系统 他的内存管理是不同的

以上是关于什么时候需要高低字节序转换,即ntohs()函数的主要内容,如果未能解决你的问题,请参考以下文章

网络字节序与主机字节序的转换

网络字节序&大小端存储

转:为什么需要htons(), ntohl(), ntohs(),htons() 函数

socket编程为什么需要htons(), ntohl(), ntohs(),htons() 函数

socket编程为什么需要htons(), ntohl(), ntohs(),htons() 函数

网络字节序的转换函数