IoBuffer
1.获取IoBuffer对象:(IoBuffer是一个抽象类,因此不能直接实例化)
// 使用指定大小实例化一个新的Buffer, 并且可以定义他的类型 (direct 或 heap)
public static IoBuffer allocate(int capacity, boolean direct)
// 使用指定大小实例化一个新的Buffer
public static IoBuffer allocate(int capacity)
第二种方式:(使用第二种方法之前你必须先指定Buffer类型,否则默认将是Heap)
// 设置创建默认Buffer的类型,这里是heap.
IoBuffer.setUseDirectBuffer(false);
// 新建一个Buffer
IoBuffer buf = IoBuffer.allocate(1024);
2.IoBuffer的自动扩展:(使用Java NIO的API创建一个可扩展的buffer并不容易,因为要为网络程序填充超过固定大小数据)
IoBuffer buffer = IoBuffer.allocate(8);
buffer.setAutoExpand(true);
buffer.putString("12345678", encoder);
// 往Buffer里加入更多内容
buffer.put((byte)10);
与java的StringBuffer类似,当setAutoExpand设置为true的时候,内容的长度超过最大长度的时候,会自动翻倍扩展。
3.IoBuffer的长度改变:
IoBuffer buffer = IoBuffer.allocate(16);
buffer.setAutoShrink(true);
buffer.put((byte)1);
System.out.println("Initial Buffer capacity = "+buffer.capacity());
buffer.shrink();
System.out.println("Initial Buffer capacity after shrink = "+buffer.capacity());
buffer.capacity(32);
System.out.println("Buffer capacity after incrementing capacity to 32 = "+buffer.capacity());
buffer.shrink();
System.out.println("Buffer capacity after shrink= "+buffer.capacity());
(1)capacity():无参可以获取到当前buffer的内容长度。
(2)capacity(32):可以设置buffer的长度。
(3)shrink():可以释放没有被占用的长度。
4.IoBuffer的内存管理分配:
IoBufferAllocater专门Buffer的分配和管理。实现IoBufferAllocater接口后可控制Buffer的分配管理。Mina的以下类实现了IoBufferAllocater接口:
SimpleBufferAllocator(默认)- 任何时间创建一个新的Buffer
CachedBufferAllocator - 当buffer需要复用时缓存buffer
5.其它有用方法:
static IoBuffer wrap(ByteBuffer nioBuffer):传入 是NIObuffer返回的是IoBuffer。
还有很多方法都在子类里面进行实现的,只能在用的过程中归纳那些比较重要了
分享到:
相关推荐
java mina 通讯框架
TCP通讯框架资源包,mina 通讯框架,TCP通讯框架,满足常用的TCP网络开发需求。亲测无任何问题。
org.apache.mina.core.buffer.IoBuffer mina core 包
Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使Java NIO在各种传输协议...
mina 通讯 实现server端与基于Android系统的client端通讯
Mina通信框架应用示例,学会运用Mina 框架
Mina2.0框架源码剖析
mina测试框架 mina测试框架 mina测试框架
Mina框架+常用JAR包 Mina框架+常用JAR包 Mina框架+常用JAR包 Mina框架+常用JAR包 Mina框架+常用JAR包 Mina框架+常用JAR包
Mina开源框架 心跳机制详解
详细介绍mina框架的各个组成部分、服务器端的开发、客户端开发。并根据本人在工程项目中使用的代码,详细讲解了服务器端是客户端实现。实现了json格式的通信、以及文件的上传于下载等功能。图文并茂,以开发者的角度...
一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件...Apache Mina也称为: NIO框架 客户端/服务端框架(典型的C/S架构) 网络套接字(networking socket)类库
Java_NIO基础教程、MINA教程, 并附上基于springboot 整合mina的基础平台框架,可以直接使用,也可以借鉴下
通讯层使用Mina实现一服务器多客户端的通信,可以修改成一个群体聊天室。Mina是手游开发常用的nio通讯框架,长连接优先使用Mina。希望对你有所帮助!
apache mina 框架的学习文档,通过此文档可以基本了解mina框架。
要实现mina框架最基本的资源包,拥有这个就可以实现mina的通讯
pache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性...
java mina框架
实用的mina框架技术,内包含教程及相关需要用到的API及实现代码!
利用 Mina 可以高效地完成以下任务: <br>TCP/IP 和 UDP/IP 通讯 串口通讯 VM 间的管道通讯 SSL/TLS JXM 集成 IoC 容器集成( Spring 、 Pico 等) 状态机 <br>据官方评测, APR 的...