网络通信大端小端转换

1、 使用说明

大端又叫网络字节序,小端又叫主机字节序,在网络通信传输数据时候,通常是采用大端对齐方式,而在本机电脑中存储是小端对齐方式,像一些网络传输协议:RTP,在构造RTP头时候就需要转换为大端对齐方式。

2、看图详解大端小端


网络通信大端小端转换_第1张图片
大端和小端.png

3、如何转换

在Linux系统下:htonl(),htons(), ntohl(), ntohs()的头文件及函数定义如下:

#include

/常用函数: h:host to: 转换为 n:network l:long类型 s:short类型/

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

注意: 只有数据类型超过1个字节以上的数据才需要进行转换

4、使用代码

#include 

#include 

int main()

{

long iSmallData=0x12345678;

long iBigData;

iBigData=htonl(iSmallData);//小端转大端(主机字节序转网络字节序)

printf("iSmallData=%x,iBigData=%x\n",iSmallData,iBigData);

return 0;

}

输出结果:iSmallData=12345678,iBigData=78563412

你可能感兴趣的:(网络通信大端小端转换)