CumulativeProtocolDecoder.decode()
拿到IoSession中的ByteBuffer,如果有则设置usingSessionBuffer=true并且读取这个ByteBuffer;否则设置usingSessionBuffer=false,并且从网络流中读取ByteBuffer。
循环调用doDecode()方法进行解码,直到解码失败(doDecode返回false)或者解码成功并且刚好读取完当前的ByteBuffer。
如果还有没读取完的数据,则将数据拷贝到IoSession中的ByteBuffer头部;否则移除IoSession中的ByteBuffer,为下一次解码做准备。
ProtocolDecoderImpl.doDecode()
遍历所有decoder,调用具体的decodable()方法,返回状态为:
MessageDecoder.OK:确定当前使用的decoder。
MessageDecoder.NOT_OK:undecodables计数器增加1,如果undecodables个数等于decoder个数时,抛出异常。
MessageDecoder.NEED_DATA:返回false告诉CumulativeProtocolDecoder.decode()方法解码失败,等待更多数据。
注意调用decodable()方法后会还原ByteBuffer的position和limit。
调用具体的decode()方法,返回状态为:
MessageDecoder.OK:返回true告诉CumulativeProtocolDecoder.decode()方法解码成功。
MessageDecoder.NOT_OK:抛出异常。
MessageDecoder.NEED_DATA:返回false告诉CumulativeProtocolDecoder.decode()方法解码失败,等待更多数据。
分享到:
相关推荐
在Mina 1.1.7版本中,提供的示例源码是学习和理解Mina框架工作原理及其实现各种网络协议的重要资源。这个压缩包"apache.mina.example"包含了一系列的示例项目,可以帮助开发者快速上手并深入理解Mina。 1. **Mina...
在这个"Mina 1.1.7核心代码"项目中,我们可以深入理解MINA的核心机制和组件。 MINA的核心组件主要包括以下部分: 1. **IoSession**: 这是MINA中最基础的数据容器,代表了服务端与客户端之间的连接。IoSession存储...
《mina-1.1.7.zip:Java开源通信框架详解》 mina,全称为Apache MINA(Multipurpose Infrastructure for Network Applications),是一个用Java语言编写的高性能、跨平台的网络应用程序开发框架。MINA的设计目标是...
Mina的设计理念是将网络通信的各种复杂性隐藏在底层,让开发者能够专注于业务逻辑。它基于Io(Input/Output)模型,提供了基于事件的非阻塞I/O机制,极大地提升了服务器处理并发请求的能力。这种设计允许服务器在...
MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入...
java运行依赖jar包
mina-integration-jmx-1.1.7.jar openfire 需要jar
Apache Mina的核心理念是提供一个简洁的API,使得开发者能够专注于业务逻辑,而不是网络通信的底层细节。它基于Java NIO(非阻塞I/O)构建,允许在高并发场景下高效地处理连接和数据传输。Mina支持多种网络协议,如...
在接收端,这些对象会被反序列化,从而可以进行业务逻辑处理。Mina的ProtocolDecoder和ProtocolEncoder接口是实现这一过程的关键。 5. **Mina发送XML和JSON** XML和JSON作为常见的数据交换格式,经常在分布式系统...
标题中的"mina-1.1.7.rar"表明这是一个 MINA 框架的特定版本,1.1.7,通常包含源码、文档、示例代码和相关的库文件。这个版本可能包含了针对前一版本的改进和修复,旨在提高性能、稳定性和功能。 描述中提到"非常好...
mina-core-1.1.7-sources.jar mina-filter-compression-1.1.7-sources.jar mina-filter-ssl-1.1.7-sources.jar mina-filter-ssl.jar slf4j-api-1.5.8-sources.jar slf4j-log4j12-1.5.8-sources.jar Openfire3.10...
Apache Mina是一个开源的网络通信框架,常用于构建高性能、高效率的服务端应用程序,尤其在Java平台上。在本文中,我们将深入探讨Mina的核心概念,包括连接管理、心跳机制以及断线重连策略。 首先,让我们理解"Mina...
MINA (Java IO Network Application Framework) 是一个由Apache软件基金会开发的开源网络通信框架,主要应用于构建高性能、高可用性的网络服务器。这个压缩包包含了MINA API文档、自学手册以及开发指南,对于学习和...
Mina的Decoder和Encoder将负责将这些协议数据转化为可处理的对象,以便于业务逻辑层进行处理。同时,Spring的AOP可以用来实现消息的安全性和日志记录。 在业务逻辑层,我们可以使用Spring的Service和Repository组件...
Apache Mina是一个高度可扩展的网络通信框架,它允许开发者创建高性能、高效率的服务端和客户端应用程序。在Java世界中,Mina以其简洁的API和灵活性而受到青睐,尤其适用于处理大量的并发连接,如TCP/IP和UDP协议。...
Mina的核心设计思想是将网络通信的核心逻辑与业务逻辑分离,通过事件驱动模型和I/O多路复用技术,实现了高性能的非阻塞I/O。 在`Android-MinaSocket` 库中,开发者可以便捷地创建和管理长连接,其核心特性包括: 1...
Mina的核心理念是将网络协议处理与业务逻辑分离,使得开发者可以专注于实现应用程序的业务功能,而无需关心底层网络通信的细节。 标题中的"mina.zip内涵所有mina所需jar包"表明,这个压缩文件包含了运行Apache Mina...
Mina和Socket是两种常见的网络通信框架和技术,它们在Java编程环境中被广泛使用。本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic ...