目录
1.概念
2.常见的字节序
3.转换接口
1.概念
主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。小端字节序则是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。在两台使用不同字节序的主机之间传递数据时,可能会出现冲突。所以,在将数据发送到网络时规定整形数据使用大端字节序,所以也把大端字节序成为网络字节序列。对方接收到数据后,可以根据自己的字节序进行转换。
2.常见的字节序
- 大端:手机,网络
- 小端:电脑
Linux 系统提供如下4个函数来完成主机字节序和网络字节序之间的转换
主机字节序列:大端/小端
网络字节序列:大端
3.转换接口
#include <netinet/in.h>
uint32_t htonl(uint32_t hostlong);// 长整型的主机字节序转网络字节序uint32_t ntohl(uint32_t netlong);// 长整型的网络字节序转主机字节序uint16_t htons(uint16_t hostshort);// 短整形的主机字节序转网络字节序uint16_t ntohs(uint16_t netshort);// 短整型的网络字节序转主机字节序