1.position
例:
position()
第一次使用返回值为当前位置:0
position(8) 返回第8个字节以后的数据(包括第8个)可以和 limit 联合使用
如:
buffer.position(3);
buffer.limit(7);
ByteBuffer slice = buffer.slice();
再次调用 position() 返回:8
2.remaining
例:
ByteBuffer byt = ByteBuffer.allocate(128,false);
第一次调用
byt.remaining(); 返回 128
A、使用:byt.putInt(5);或者byt.getInt()或者byt.get(字节数组)等方法
之后调用 byt.remaining(); 返回 124
B、但使用 byt.putInt(5,4);或者byt.getInt(0) 之后,调用方法
byt.remaining();返回 128
3.prefixedDataAvailable
prefixedDataAvailable(4) int
该方法很好用。判断前四字节的整型值是否大于等于整个缓冲区的数据。可以方便的判断一次
messageReceived 过来的数据是否完整。(前提是自己设计的网络通讯协议前四字节等于发送数据的长度)
prefixedDataAvailable(2) Short int
分享到:
相关推荐
5. 高效的API:Mina ByteBuffer的API设计更贴近网络编程需求,提供了如writeInt、readUTF等方法,使得数据序列化和反序列化更便捷。 总的来说,Mina ByteBuffer是对Java NIO ByteBuffer的扩展和优化,它更加关注...
深入理解Apache_Mina_(1)----_Mina的几个类 深入理解Apache_Mina_(2)----_与IoFilter相关的几个...深入理解Apache_Mina_(6)----_Java_Nio_ByteBuffer与Mina_ByteBuffer的区别(类图) 相信你们也愿意去下载更有价值的东西
Mina也提供了自己的ByteBuffer实现,它扩展了Java Nio的ByteBuffer,增加了更多的便利功能,比如更方便的读写操作、更高效的内存管理以及与其他Mina组件的集成。Mina ByteBuffer的使用可以优化性能,减少内存复制,...
深入理解MINA的ByteBuffer和Java Nio ByteBuffer的区别,可以帮助开发者优化性能并减少内存拷贝。 线程模型是MINA的另一个关键配置项。MINA提供了多种线程模型,如简单的单线程模型、多线程模型以及Event-driven...
在本文中提到的Java Nio ByteBuffer与Mina ByteBuffer的差异,实际上揭示了Apache Mina对于底层网络通信的封装程度。Apache Mina之所以能够成为一个广泛使用的框架,很大程度上是因为它解决了开发者在处理大量网络...
例如,可以有一个`encode(MyObject obj, IoSession session, ByteBuffer out)`方法,将MyObject对象编码为ByteBuf并写入out。 - 解码器通常包含一个或多个重载的decode()方法,用于从输入的ByteBuffer中解析出应用...
在Mina中,Future表示一个异步函数调用的结果,提供了阻塞方法来获取结果,同时也允许通过回调机制,在完成时调用指定的方法,从而实现“fire and forget”的编程模式,不同于Java 5的Future接口,Mina的Future更...
4. **Buffer**:MINA 提供了 ByteBuffer 和 IoBuffer 两种缓冲区,用于在网络通信中高效地读写数据。 **MINA 2.0.1 版本特点:** 1. **性能优化**:在 2.0.1 版本中,MINA 进行了多方面的性能提升,包括更快的数据...
7. **缓冲区操作**: MINA使用NIO的ByteBuffer,提供了高效的数据读写操作。理解如何有效地管理和操作缓冲区对于优化MINA应用至关重要。 8. **线程模型**: MINA支持多线程模型,可以根据需求配置线程池,以适应不同...
4. 在MINA服务端和客户端中使用生成的Java类:将数据序列化为字节数组,通过MINA的ByteBuffer进行传输;在接收端反序列化恢复数据。 5. 集成MINA事件处理器:在MINA的IoHandler或Filter中处理接收到的数据,进行反...
- 数据在传输前需要进行编码,MINA提供了多种编码器和解码器,如ByteBuffer、String、XML等。在本例中,可能是将登录信息封装成JSON格式进行传输。 - 使用合适的Encoder和Decoder,确保数据在网络间正确传输和解析...
Buffer类(如ByteBuffer)用于存储和操作字节数据,理解其工作原理对于优化性能至关重要。 通过这个DEMO,你可以深入理解MINA如何实现高效的网络通信,并学习到如何利用MINA构建自定义协议的网络应用。无论你是初学...
Mina使用NIO的ByteBuffer作为数据交换的基本单元,它允许高效地处理大块数据和小块数据。ByteBuffer可以在内存和网络I/O之间透明地转换,减少了数据拷贝的开销,提高了性能。 6. **mina-core和mina-filter**: ...
4. **Protocol Buffers**:MINA提供了多种协议缓冲区,如ByteBuffer和MinaBuffer,用于高效地读写网络数据。这些缓冲区支持动态扩容,并提供了方便的数据转换方法。 5. **自定义协议支持**:MINA允许开发者轻松实现...
客户端会将图片数据转化为字节数组,然后通过MINA的`ByteBuffer`发送给服务器。 ```java public class MinaClient { private static final String SERVER_ADDRESS = "localhost"; private static final int PORT ...
本文将深入探讨MINA框架自定义解编码器的概念、实现方法及其实战案例。 1. **解编码器的重要性** 在MINA框架中,解编码器是数据传输过程中的关键组件,负责将接收到的原始字节流转化为应用程序可以理解的对象,...
6. Java NIO还引入了新的IO API和类库,例如ByteBuffer、FileChannel、Selector等。 Java NIO与传统IO的主要区别在于其非阻塞特性。在传统IO中,一个操作(如读写数据)会阻塞调用线程,直到操作完成或者发生错误。...
Mina提供了多种预定义的Codec,如ByteBuffer、String、XML等,同时也支持自定义编码解码器。 4. **EventDriven**:Mina基于事件驱动模型,当网络事件发生时,如连接建立、数据接收、连接关闭等,会触发相应的事件...
MINA支持多种类型的缓冲区实现,如Java NIO的ByteBuffer和MINA自定义的SimpleBuffer。 在`IoService`的实现中,`AbstractEndpoint`和`AbstractService`是两个关键类。`AbstractEndpoint`处理网络I/O事件,而`...