`

java中的网络字节序

 
阅读更多
常用的字节序
Little endian:将低序字节存储在起始地址。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01 23 45 67
Byte3 Byte2 Byte1 Byte0
将在内存中按照如下顺序排放:
内存地址序号 字节在内存中的地址 16进制值
0x03 Byte3 01
0x02 Byte2 23
0x01 Byte1 45
0x00 Byte0 67
Big endian:将高序字节存储在起始地址。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01 23 45 67
Byte3 Byte2 Byte1 Byte0
将在内存中按照如下顺序排放:
内存地址序号 字节在内存中的地址 16进制值
0x03 Byte0 67
0x02 Byte1 45
0x01 Byte2 23
0x00 Byte3 01

网络字节序
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。
如果通信的一方是JAVA程序,一方是C/C++程序时,则需要在C/C++一侧使用以上几个方法进行字节序的转换,而JAVA一侧,则不需要做任何处理,因为JAVA字节序与网络字节序都是BIG-ENDIAN,只要C/C++一侧能正确进行转换即可(发送前从主机序到网络序,接收时反变换)。如果通信的双方都是JAVA,则根本不用考虑字节序的问题了。
分享到:
评论
1 楼 zhoujieyaoqu 2017-06-20  
windows内核都是低位在前的

相关推荐

    JAVA网络字节序转换1

    举例而言,有一个4字节的数据0x01020304,要存储在内存中或文件中编号0~3字节的位置,两种字节序的排列方式分别如下:Big Endian 低地址 

    Java整型数与网络字节序byte[]数组转换关系详解

    主要介绍了Java整型数与网络字节序byte[]数组转换关系,结合实例形式归纳整理了java整型数和网络字节序的byte[]之间转换的各种情况,需要的朋友可以参考下

    RTP协议传输以及接收

    这是一个采用RTP协议进行网络实时传输的java文件,你既可以传输话筒,摄像头的实时数据,也可以传输音视频文件,还可以传输网上的资源文件。

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    2.3.7 java平台实现中的bug 2.3.8 测试 2.4 平台无关的七个步骤 2.5 平台无关性的策略 2.6 平台无关性和网络移动对象 2.7 资源页 第3章 安全 3.1 为什么需要安全性 3.2 基本沙箱 3.3 类装载器...

    基于JAVA的学生通讯录管理系统设计和实现[文献综述].doc

    Java程序(后缀为java的文件)在Java平台上被编 译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台 的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 7、Java语言是可...

    微信服务好xml数据包加密解密工具类

    10.还原4个字节的网络字节序recoverNetworkBytesOrder 11.解密完之后是一个Sring类型的xml字符串,还需要在java中解析xml元素 12.其他更多内容可以查看本人博客中关于微信服务(公众)号的开发 13.有不明白的可以...

    Java经典入门教程pdf完整版

    杂性,同时提供对现有应用稈序集成强有力支持,完全支持 Entcrprise java beans,有良 好的向导攴持打包和部署应用,添加了目录攴持,增强了安全机制,提高了性能 JE是对标准版进行功能扩展,提供一系列功能,用来解决进行...

    基于Java的XML解析与反射设计模式.doc

    除了java语言具有的许多安全特性以外,java对通过网络下载的类具 有一个安全防范机制(类classloader),如分配不同的名字空间以防替代本地的同名类 、字节代码检查,并提供安全管理机制(类securitymanager)让java...

    android-coding-challenge:Android 编程挑战

    该消息具有以下结构: 8 位常量 -- 0x01(“相对”命令) 16 位有符号整数,网络字节序 -- R 偏移量16 位有符号整数,网络字节序 -- G 偏移量16 位有符号整数,网络字节序 -- B 偏移量偏移字段为 16 位以备将来使用...

    matlab转换java代码-sample-projects:先前课程和个人项目中的代码

    作业2:将数据从小字节序转换为大字节序,为主机到网络和网络到主机的交互做准备。 将数字翻转为二进制。 更多信息 XOR触发器:XOR功能 嵌入式系统最终项目 语言:C 使用[STM32F4发现板微控制器板],最终项目包括...

    基于javatcpsocket通信的拆包和装包源码-interview:一些网络知识

    基于java tcp socket通信的拆包和装包源码 TCP、UDP的区别 TCP面向连接,UDP是无连接的,即发送数据之前不需要建立连接 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    基于javatcpsocket通信的拆包和装包源码-netty-im-exercise:网络锻炼

    基于java tcp socket通信的拆包和装包源码 netty-im-exercise IO 编程 传统的IO模型中,每个连接创建成功之后就需要一个线程来维护,每个线程包含一个 while 死循环, 1w 个连接对应 1w 个线程。就会有 1w 个 while ...

    计算机通信交换技术

    译者序 第一部分 概 述 第1章 引言 1 1.1 早期的路由功能 2 1.2 ATM与IP 4 1.3 IP交换 6 1.4 路由器IP交换 8 1.5 一个IP交换的标准 9 1.6 结论 10 第2章 TCP/IP、寻址和选路 12 2.1 TCP/IP的历史 12 2.2 TCP/IP体系...

    EasyRpc:EasyRpc是一个基于Netty,ZooKeeper和ProtoStuff的简单,高性能,易于使用的RPC框架。

    EasyRpc EasyRpc是基于Netty,ZooKeeper和ProtoStuff开发的一个简单易用,...理解字节序[J / OL]。阮一峰的网络日志,2016-11-22。 [2]猿码道。聊聊Linux五种IO模型[J / OL]。简书,2016.05.18。 [3]猿码道。聊聊同步,

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

Global site tag (gtag.js) - Google Analytics