-
Mina使用IoBuffer读取字节的问题3
问题描述:
使用telnet localhost 3005
输入123456
在console里显示:
服务端与客户端创建连接...
服务端与客户端连接打开...
b:49
b:50
b:51
b:52
b:53
b:54
rrrr
nnnnn
Msg:
服务端接收到的数据为:
Encode:Fri Apr 06 15:57:03 CST 2012
服务端发送信息成功...
为什么Msg为空呢?
这个是我实现的ProtocolDecoder的decode函数public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { // TODO Auto-generated method stub while (in.hasRemaining()) { byte b = in.get(); switch (b){ case '\r': System.out.println("rrrr"); break; case '\n': System.out.println("nnnnn"); buf.flip(); String msg = buf.getString(charset.newDecoder()); System.out.println("Msg:"+msg); out.write(msg); break; default: System.out.println("b:"+b); buf.put(b); } } }
2012年4月06日 16:35
目前还没有答案
相关推荐
org.apache.mina.core.buffer.IoBuffer mina core 包
首先,我们需要将图片文件读取到内存中的IoBuffer,然后通过过滤器链传递给远程客户端。在这个过程中,可以实现数据压缩、加密等额外功能。同时,Mina提供了进度反馈机制,可以实时监控文件传输进度,确保传输的可靠...
总结起来,Apache Mina是一个强大且灵活的网络通信框架,通过其事件驱动和异步IO模型,简化了网络应用的开发过程。IoService、IoProcessor、IoFilter和IoHandler这四个关键接口协同工作,确保了数据的高效传输和业务...
1. 缓冲区管理:Mina使用IoBuffer作为数据缓冲区,允许开发者对数据的读写进行精细控制。通过设置合适的缓冲区大小和正确地读写数据,可以有效防止数据丢失或交错。 2. 自定义编码解码器:Mina支持用户自定义编码器...
MINA提供了 IoBuffer 类,用于高效地存储和操作网络数据。你可以将数据写入Buffer,然后通过Session的write方法发送出去;接收数据时,MINA会自动将接收到的数据填充到Buffer中,供你读取。 在“MINA TCP简单通信...
标题“mina学习的最佳代码”暗示我们将探讨MINA框架的使用示例和最佳实践。MINA通过简化网络编程,使得开发TCP/IP、UDP/IP以及SSL/TLS协议的应用程序变得简单。下面将深入讲解MINA的核心概念和关键组件。 1. **非...
在许多网络协议中,数据包可能跨越多个TCP/IP报文或者IO读取事件。这种情况下,CumulativeProtocolDecoder会累积接收到的数据,直到能够解析出一个完整的协议消息。 1. **理解CumulativeProtocolDecoder** ...
4. **缓冲区管理**:Mina使用IoBuffer作为缓冲区对象,可以方便地进行读写操作,支持字节和对象之间的转换。 5. **性能优化**:Mina提供了池化的缓冲区和连接管理机制,以及心跳检测和空闲策略,以优化网络通信性能...
Chapter 10 - IoBuffer Chapter 11 - Codec Filter Chapter 12 - Executor Filter Chapter 13 - SSL Filter Chapter 14 - Logging Filter Part III - MINA Advanced Chapter 15 - Debugging Chapter 16 - State...
首先,计算出需要的字节长度(ID的4字节,名称长度的4字节,以及GBK编码后的名称字节数组),然后分配一个IoBuffer,将ID、名称长度和名称的GBK编码字节写入缓冲区,最后翻转缓冲区,使其准备写入网络。 在MINA框架...
- **Buffer**:MINA使用IoBuffer作为缓冲区,它提供了高效的读写操作,并且支持自动扩容和预读写。 - **Filter**:过滤器是MINA中的关键组件,它们可以链式调用,用于数据的预处理和后处理,如压缩、加密、身份...
例如,你可以创建一个`MyMessageDecoder`,重写`decode()`方法,从`IoBuffer`中读取数据并创建`MyMessage`实例。 ```java public class MyMessageDecoder extends ReplayingDecoder<Void> { @Override protected ...
通过这个"mina使用例子",你可以深入理解如何使用Mina来构建一个网络应用,从创建服务端、配置过滤器链,到处理客户端的连接和数据交换,以及如何进行性能优化和异常处理。这个例子将为你提供实践Mina框架的第一手...
它可能还会涉及如何配置和使用MINA的各种组件,如Buffer、Filters、Protocols等,帮助开发者更好地理解和应用MINA到实际项目中。 最后,`Apache_Mina_Server_2.0中文参考手册V1.0.pdf` 是MINA服务器端的中文参考...
- **IoBuffer详解**:IoBuffer是Mina用于高效内存管理的数据结构,本章节详细讲解了其内部机制和使用方法。 #### Chapter 9 - 编解码器过滤器 - **编解码器**:介绍如何使用Mina提供的编解码器过滤器对网络数据...
综上所述,这篇博客可能涵盖了Java基本IO概念、NIO的原理和使用,以及如何使用Mina或Netty构建高性能的网络服务,同时提供了非阻塞服务器和客户端的示例代码。这些内容对于深入理解Java网络编程和提升系统性能至关...
Apache Mina是一个开源项目,主要用于构建高性能、高度可扩展的网络应用程序。它的全名是"Minimalistic Network Application Framework",提供了基于...在实际开发中,掌握Mina的使用能有效提升项目性能和开发效率。
5. **数据传输**:数据的读写操作通过IoBuffer对象进行,它提供了一种高效、灵活的数据缓冲机制。 ### 3. MinaStudy 示例分析 在"MinaStudy"这个DEMO中,我们可以看到以下关键部分: - **初始化服务端**:创建一...
Mina使用IoBuffer作为数据缓冲区,它提供了一种高效的字节操作方式。同时,Mina还提供了Codec接口,用于数据的编码和解码。通过实现Codec接口,开发者可以自定义数据格式,实现与其他系统的通信。 五、异步I/O模型 ...
- **Decoder**:接收到 `IoBuffer`(字节缓冲区)后,Decoder 会按照预定义的格式(例如报文结构)读取数据,然后根据功能代码解析出具体的业务信息。在解析过程中,可能需要利用框架(如 XStream)将 XML 字符串...