java mina 字节序_【MINA】字节序知识

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值