mina长数据无法接收,请问如何实现的
1个回答
展开全部
throws Exception {
final int packHeadLength = 8;
// 先获取上次的处理上下文,其中可能有未处理完的数据
Context ctx = getContext(session);
// 先把当前buffer中的数据追加到Context的buffer当中
ctx.append(in);
// 把position指向0位置,把limit指向原来的position位置
IoBuffer buf = ctx.getBuffer();
buf.flip();
System.out.println("buf.remaining()--------" + buf.remaining());
// 然后按数据包的协议进行读取
while (buf.remaining() >= packHeadLength) {
buf.mark();
// 读取消息头部分
int length = buf.getInt();
System.out.println("length==" + length);
// 检查读取是否正常,不正常的话清空buffer
if (length < 0 || length > m
final int packHeadLength = 8;
// 先获取上次的处理上下文,其中可能有未处理完的数据
Context ctx = getContext(session);
// 先把当前buffer中的数据追加到Context的buffer当中
ctx.append(in);
// 把position指向0位置,把limit指向原来的position位置
IoBuffer buf = ctx.getBuffer();
buf.flip();
System.out.println("buf.remaining()--------" + buf.remaining());
// 然后按数据包的协议进行读取
while (buf.remaining() >= packHeadLength) {
buf.mark();
// 读取消息头部分
int length = buf.getInt();
System.out.println("length==" + length);
// 检查读取是否正常,不正常的话清空buffer
if (length < 0 || length > m
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询