`

Mina二进制传输对象IoBuffer的使用

    博客分类:
  • Mina
阅读更多
IoBuffer常用方法:

Mina中传输的所有二进制信息都存放在IoBuffer中,IoBuffer是对Java NIO中ByteBuffer的封装(Mina2.0以前版本这个接口也是ByteBuffer),提供了更多操作二进制数据,对象的方法,并且存储空间可以自增长,用起来非常方便;简单理解,它就是个可变长度的byte数组!

1. static IoBuffer allocate(int capacity,boolean useDirectBuffer)

创建IoBuffer实例,第一个参数指定初始化容量,第二个参数指定使用直接缓冲区还是JAVA 内存堆的缓存区,默认为false。

2.IoBuffer setAutoExpand(boolean autoExpand)

这个方法设置IoBuffer 为自动扩展容量,也就是前面所说的长度可变,那么可以看出长度可变这个特性默认是不开启的。

3. IoBuffer flip()

limit=position , position=0,重置mask,为了读取做好准备,一般是结束buf操作,将buf写入输出流时调用;这个必须要调用,否则极有可能position!=limit,导致position后面没有数据;每次写入数据到输出流时,必须确保position=limit。

4. IoBuffer clear()与IoBuffer reset()

clear:limit=capacity , position=0,重置mark;它是不清空数据,但从头开始存放数据做准备---相当于覆盖老数据。

reset就是清空数据

5. int remaining()与boolean hasRemaining()

    这两个方法一般是在调用了flip()后使用的,remaining()是返回limt-position的值!hasRemaining()则是判断当前是否有数据,返回position < limit的boolean值!

具体方法参看API。
分享到:
评论

相关推荐

    官方最新Apache MINA 2.0二进制包和源代码

    - **Buffer管理**:MINA中的IoBuffer用于高效地读写网络数据,理解和掌握IoBuffer的使用是必要的。 - **心跳机制**:为了检测网络连接是否活跃,MINA支持心跳机制,确保数据传输的可靠性。 - **线程模型**:MINA允许...

    MINA 协议解码过滤器

    解码过程通常是将字节流转换为应用程序可以理解的对象,例如,将TCP数据包转换为HTTP请求或自定义的二进制协议消息。 MINA提供了一些内置的解码器,如`StringDecoder`,它能将字节流转为字符串;还有`...

    mina core 包

    org.apache.mina.core.buffer.IoBuffer mina core 包

    mina的高级使用,mina文件图片传送,mina发送文件,mina报文处理,mina发送xml和json

    在Mina中,我们可以利用BufferedIoFilter或者IoBuffer来传输文件,包括图片。首先,我们需要将图片文件读取到内存中的IoBuffer,然后通过过滤器链传递给远程客户端。在这个过程中,可以实现数据压缩、加密等额外...

    mina传输对象的示例

    在标题和描述中提到的“mina传输对象的示例”指的是如何在Mina框架下处理和传输自定义的数据对象。Mina允许开发者通过事件驱动和异步I/O模型来高效地构建网络服务。 Mina的核心组件包括: 1. **Session**: 表示...

    Mina网络通信传输

    在"实现了Mina框架简单的换行符编解码的服务器客户端通信"这一描述中,我们可以理解到项目使用了Mina提供的编码器和解码器机制。换行符编码器通常用于将包含换行符的数据转换为网络传输友好的格式,因为网络协议中...

    给予mina 协议进行大数据传输

    自定义编解码器可以实现特定的数据压缩、加密或者特定协议的解析,如XML、JSON或者其他二进制协议。这句话还强调了开源精神,表示技术应当被分享和共同进步,这也是MINA作为开源项目的一大优点。 在标签中,"mina...

    mina文件传输

    - **ByteBuf**:Mina中的ByteBuf是用于存储和传输二进制数据的容器,它支持读写操作,且具有高效的内存管理机制。 - **传输效率**:Mina的非阻塞I/O特性确保了即使在高并发环境下,服务器也能有效地处理多个客户端...

    mina 集成spring 传输文件和文本

    这个监听器应具备处理两种不同数据类型的能力,可能需要使用Mina的Session对象和Filter链。 6. **协议设计**:设计一个自定义协议来区分文件和文本数据。这可能包括特定的起始和结束标记,或者预定义的命令结构。 ...

    mina客户端简单代码示例

    在本示例中,我们关注的是"Mina客户端",即如何使用Mina库创建一个简单的客户端应用。 标题中的"mina客户端简单代码示例"意味着我们将探讨如何使用Mina框架编写一个基础的客户端程序,该程序能够连接到服务器并发送...

    Mina文件及字符串传输

    标题中的"Mina文件及字符串传输"指的是使用Apache Mina框架进行数据交互的过程,包括发送和接收字符串请求以及传输文件。这一过程通常涉及到网络编程中的TCP/IP协议,因为Mina支持基于TCP的传输层通信。 首先,让...

    MiNA框架新人指导

    #### 二、MiNA框架简介 MiNA框架是一种基于Java的高性能网络应用程序开发框架,它简化了网络编程中的复杂性,使开发者能够更加专注于业务逻辑而不是底层网络细节。MiNA提供了一套强大的API来处理各种网络通信任务,...

    apache-mina-2.0.7 含官方教程

    描述中提及了"apache-mina-2.0.7-bin.zip",这是一个包含Apache MINA二进制文件的压缩包,通常包含了编译好的库和必要的运行时文件。 Apache MINA的核心在于提供一个抽象的、事件驱动的网络应用编程接口(API),...

    mina学习的最佳代码

    标题“mina学习的最佳代码”暗示我们将探讨MINA框架的使用示例和最佳实践。MINA通过简化网络编程,使得开发TCP/IP、UDP/IP以及SSL/TLS协议的应用程序变得简单。下面将深入讲解MINA的核心概念和关键组件。 1. **非...

    MINA_API+MINA_DOC+mina

    它可能还会涉及如何配置和使用MINA的各种组件,如Buffer、Filters、Protocols等,帮助开发者更好地理解和应用MINA到实际项目中。 最后,`Apache_Mina_Server_2.0中文参考手册V1.0.pdf` 是MINA服务器端的中文参考...

    Mina2.0阅读源码笔记(很值得一看)

    - IoBuffer 是 Mina 中用于数据存储和传输的核心类,它是对 Java NIO ByteBuffer 的封装和增强。 - **IoBuffer vs ByteBuffer**: IoBuffer 提供了更多便于操作的功能,比如自动扩容、直接内存分配等特性,使得数据...

    基于Mina的十六进制数据通信服务器框架:该项目是对以前使用的过时架构的

    基于Mina的十六进制数据通信服务器框架:该项目是对以前使用的过时架构的重建。在此框架下开发了一个游戏平台服务器,支持多客户端调用,包括C#+Unity开发的游戏客户端、C开发的PC客户端++

    Mina 使用DEMO

    5. **数据传输**:数据的读写操作通过IoBuffer对象进行,它提供了一种高效、灵活的数据缓冲机制。 ### 3. MinaStudy 示例分析 在"MinaStudy"这个DEMO中,我们可以看到以下关键部分: - **初始化服务端**:创建一...

    Mina2中文文档

    - **IoBuffer详解**:IoBuffer是Mina用于高效内存管理的数据结构,本章节详细讲解了其内部机制和使用方法。 #### Chapter 9 - 编解码器过滤器 - **编解码器**:介绍如何使用Mina提供的编解码器过滤器对网络数据...

    mina-core-2.0.1.jar,apache-mina-2.0.1

    4. **Buffer**:MINA 提供了 ByteBuffer 和 IoBuffer 两种缓冲区,用于在网络通信中高效地读写数据。 **MINA 2.0.1 版本特点:** 1. **性能优化**:在 2.0.1 版本中,MINA 进行了多方面的性能提升,包括更快的数据...

Global site tag (gtag.js) - Google Analytics