首先明白字节序、字节序指占内存超过1个字节类型的数据在内存中存放顺序,通常有大端和小端两种顺序:
小端顺序:指低字节数据存放在内存地址,高字节数据存放在高地址处
大端顺序:指低字节数据存放在高地址处,高字节数据存放在内存地址处。
1、主机序
不同的CPU处理数据有不同的字节序类型,将一台设备的字节序类型称作为主机序
2、网络序
网络上以字节流的方式传输数据,在传输过程中的字节序类型称为网络序。与其他具体设备的CPU/OS类型无关,保证了在不同设备间传输时能被正确解析。
网络序固定采用大端模式,所以在大端设备中主机序和网络序是相同不需要转换
3、两者转换
为实现不同设备间的通讯,数据能够被正确的解析,需要进行主机序与网络序之间的转换。
相同字节序的设备进行网络通信时无需字节转换,反正必须进行字节序转换
4、转换函数:
字节序转换函数会根据当前平台存储模式做响应正确的转换,如果当前平台是大端,则直接返回不进行转换,如果当前平台是小端,会将接收得到的网路字节序进行转换