美文网首页
网络通信大端小端转换

网络通信大端小端转换

作者: 精简好文 | 来源:发表于2019-12-14 09:44 被阅读0次

1、 使用说明

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

2、看图详解大端小端


大端和小端.png

3、如何转换

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

#include <arpa/inet.h>

/常用函数: 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 <stdio.h>

#include <arpa/inet.h>

int main()

{

long iSmallData=0x12345678;

long iBigData;

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

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

return 0;

}

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

相关文章

  • 网络通信大端小端转换

    1、 使用说明 大端又叫网络字节序,小端又叫主机字节序,在网络通信传输数据时候,通常是采用大端对齐方式,而在本机电...

  • flutter大端小端转换

    以int为例

  • 字节序:大端法和小端法

    大端和小端 大端法:高位保存在低地址中。 小端法:高位存放在高地址中, 程序判断大端法还是小端法 大端和小端法对程...

  • python转换bin文件大小端

    需求:将当前文件夹下所有源文件(小端存储的bin文件)转换成目标文件(大端存储的bin文件),或者大端转小端,目标...

  • (转)字节序、大端序与小端序及其相关转换

    字节序、大端序与小端序及其相关转换https://blog.csdn.net/SwordArcher/articl...

  • C: 判断大小端

    大端与小端 大端与小端指的是多字节的数值在内存中的存储形式,数值的起始存储在内存的高序地址则为大端,反之为小端: ...

  • arm体系结构中的大小端

    大端模式: 小端模式:

  • 大端小端

    由于某个问题,最近突然联想到大端小端问题,时间久远,记忆有点模糊,所以又重新翻看了一下,做个记录,内容大都来源伟大...

  • 小端 / 大端

    Little-Endian 小端:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。Big-Endia...

  • 大端小端

    大端: 小端:数据的 低 位保存在内存的低地址中,数据的 高 位保存在内存的高地址中。 上面是大小端的定义。定义总...

网友评论

      本文标题:网络通信大端小端转换

      本文链接:https://www.haomeiwen.com/subject/mmkcnctx.html