首页 > 其他 > 详细

字节序知识

时间:2015-08-09 13:58:36      阅读:104      评论:0      收藏:0      [点我收藏+]

字节序,分为高位在前和低位在前,说白了就是先从低操作还是从高位操作

java和网络的字节序是一致的,都是高位在前,这意味着java端序列化和反序列化时不用关心字节序的问题,

那问题是,那讨论字节序有什么意义那,假设c++和java通信,这时候c++端就需要考虑字节序,需要在序列化和反序列化时翻一下

这是mina IOBuffer提供的设置字节序的方法

IoBuffer order(ByteOrder bo):
这个方法设置是Big Endian 还是Little Endian,JAVA 中默认是Big Endian,C++和其他语言一般是Little Endian。

 

这是mina处理粘包和断包时的一段代码

buf.flip();
IoBuffer newBuf = IoBuffer.allocate(
buf.remaining() + in.remaining()).setAutoExpand(true);
newBuf.order(buf.order());
newBuf.put(buf);
newBuf.put(in);
newBuf.flip();
buf = newBuf;

// Update the session attribute.
session.setAttribute(BUFFER, buf);

 

注意这里

我们new了一个IOBuffer,默认是不支持扩展的,也是不指定字节序的,所以我们都是明示的设定

将newBuff的字节序设定为与session中的一 致,覆盖session中的值

 

详细了解字节序可参考http://www.blogjava.net/tinysun/archive/2009/12/31/307952.html

字节序知识

原文:http://www.cnblogs.com/dagangzi/p/4714905.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!