`
milk_36
  • 浏览: 120746 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mina 中结合DataInputStream和DataOutputStream的使用

阅读更多

 

最近在研究Mina的连接和数据传输。在网上找到些查考后就开始做些例子,从简单的socket连接了解nio原理(现在也只是了解而已),和数据的传输。然后在上手Mina的操作,发现mina确实不错。

但是我发现mina中在没有使用filter的情况下messageReceived(IoSession session, Object message),

message的数据类型是org.apache.mina.common.ByteBuffer,但是现在被IoBuffer个替代了。

原因是:

1.It doesn't provide useful getters and putters such as fill, get/putString,

   and get/putAsciiInt() enough. 

2.It is difficult to write variable-length data due to its fixed capacity。

IoBuffer中提供了put和get能方便的对数据进行操作这个与DataInputStream和DataOutputStream很相似!

但是我对IoBuffer.putString(CharSequence, CharsetEncoder)的使用不是很了解,所以在对String类型的数据

进行操作的时候卡壳了。

到网上找了很久,我也没搞清楚putString的使用!

我想DataInputStream和DataOutputStream的操作是很方便的,为什么mina就不行?

后来就一点点的试验,果然可以!下面贴出两端代码!

(1)DataOutputStream 发送

ByteArrayOutputStream outputPacket = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(outputPacket);
dos.writeUTF(str);
dos.flush();
byte[] bb=outputPacket.toByteArray();
b.putShort(bb.length);
b.put(bb);
b.flip();
session.write(b);
 (2)DataInputStream 读取
IoBuffer buf = (IoBuffer) message;
short len = buf.getShort();
byte[] readByte = new byte[len];
buf.get(readByte);
ByteArrayInputStream bai = new ByteArrayInputStream(readByte);
DataInputStream dis = new DataInputStream(bai);
dis.readUTF();

 

 

 

分享到:
评论
1 楼 wst302 2009-12-10  
学习了了,我正在找相关的资料

相关推荐

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

    XML和JSON作为常见的数据交换格式,经常在分布式系统中使用。Mina可以通过集成如JAXB(Java Architecture for XML Binding)或Jackson这样的库,将XML和JSON文档转换为字节流进行传输。同样,接收端可以反向操作,...

    队列,mina通信的结合实例

    在`QueueDemo`这个示例中,可能包含了如何创建和使用队列来辅助MINA通信的代码。开发者可能通过编写MINA的Filter和Handler,将接收到的网络数据放入队列,然后由其他线程进行后续处理。这样的设计模式有助于提高系统...

    mina2+spring结合实例

    在Java开发领域,Apache Mina和Spring框架的结合使用能够构建高效、可扩展的网络应用。Mina2作为一个轻量级的网络通信框架,提供了高度抽象的API,使得开发者可以方便地处理网络I/O操作。而Spring框架以其强大的依赖...

    MINA使用札记(CumulativeProtocolDecoder使用)

    《MINA使用札记——CumulativeProtocolDecoder使用详解》 MINA(Java Multithreaded Network Application Framework)是一个强大的、高性能的...结合源码分析和实际项目实践,能进一步提升对MINA的理解和使用能力。

    apache-mina-2.0.4.rar_apache mina_mina

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和...同时,这也有助于你理解如何将Mina与其他技术(如Spring框架)结合使用,提升整体系统的灵活性和可维护性。

    Mina+Socket通信

    Mina和Socket是两种常见的网络通信框架和技术,它们在Java编程环境中被广泛使用。本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic ...

    java-mina通信框架详解.docx

    数据的编码和解码是使用Mina时最核心的部分,因为它涉及到数据在网络中的传输格式。 IoHandler接口是编写业务逻辑的地方,接收和发送数据均在此进行。在实际使用中,你需要实现此接口来处理来自客户端的请求和发送...

    mina连接 mina心跳连接 mina断线重连

    在提供的文件"minaConnect"中,可能包含了使用Mina实现上述功能的相关代码示例和配置。通过分析这些文件,可以更具体地了解如何在实际项目中应用Mina的连接、心跳和断线重连机制。不过,具体的实现细节和优化策略需...

    MINA2.0用户手册中文随笔翻译

    MINA 是一个基于 NIO(Non-Blocking I/O)的网络框架,提供了统一的接口来处理 TCP、UDP 和其他机制的通信。MINA 的主要特点是能够处理大量的 socket 连接,并提供了一个高层接口来隐藏 BIO 和 NIO 之间的差异。 ...

    mina框架中socket使用,有服务端和客户端。

    MINA框架中的Socket服务端和客户端通过Socket接口实现数据的发送和接收,服务端创建监听Socket,等待客户端的连接请求;客户端则通过Socket连接到服务端,进行数据交互。 3. **服务端实现**:在MINA中,服务端通常...

    MINA中文官方教程

    MINA官方教程(中文版).docx文件可能包含了关于如何安装MINA、设置项目、创建基本的服务器和客户端、理解和使用过滤器系统、编码和解码策略、异常处理、性能优化等方面的详细内容。通过学习这个教程,开发者可以...

    mina框架的使用

    在描述中提到的"mina简单事例"博客文章,作者可能详细解释了如何使用MINA框架创建一个简单的网络应用。通常,这样的示例会包含以下步骤: 1. **设置项目**: 创建一个新的Java项目,并引入MINA的依赖库。 2. **创建...

    Mina2中文文档

    该文档作为中文用户手册,主要提供了Mina2的全面介绍和技术细节,适合于想要学习和使用Mina2进行网络编程的开发者。 #### 为何使用Mina - **提高性能**:Mina通过采用非阻塞I/O模型显著提高了网络应用程序的性能。...

    Mina实现长连接和短连接实例

    在这个实例中,我们将探讨如何使用Mina实现长连接和短连接。 首先,理解长连接和短连接的概念至关重要。在TCP/IP通信中,短连接(Short Connection)是指一次数据传输完成后立即关闭连接,而长连接(Long ...

    MINA_API+MINA_DOC+mina

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

    mina中文开发手册.pdf

    根据提供的信息,我们可以总结出以下关于《mina中文开发手册》中的关键知识点: ### Mina概述 - **Mina**(**MinA** **Network Application**)是一个由Apache软件基金会维护的开源项目,它提供了一个简单易用的...

    mina和protobuf整合教程

    4. 在MINA服务端和客户端中使用生成的Java类:将数据序列化为字节数组,通过MINA的ByteBuffer进行传输;在接收端反序列化恢复数据。 5. 集成MINA事件处理器:在MINA的IoHandler或Filter中处理接收到的数据,进行反...

    mina 上传文件和文件名

    MINA的多线程模型确保了在网络通信中的并行性和高效性,而缓冲区管理则优化了数据传输过程,减少了内存复制。 在MINA中实现文件上传,首先要创建一个MINA服务器,监听特定端口,等待客户端的连接。服务器端通常会有...

    3本mina教程和mina帮助文档

    3. **Mina API**:熟悉Mina的主要类和接口,如`IoSession`、`IoHandler`、`IoFilter`等,并学会如何在项目中使用它们。 4. **过滤器**:掌握Mina的过滤器机制,理解如何自定义过滤器以实现数据的编码、解码、安全...

    MINA开发手册和JAR包

    总结来说,这个压缩包提供了全面的MINA开发资源,包括必要的库文件和详细的文档,对于想要学习和使用MINA进行网络应用开发的人员来说非常有价值。通过深入阅读手册,理解和实践提供的示例,开发者可以快速掌握MINA的...

Global site tag (gtag.js) - Google Analytics