请求协议格式
req{
short tag;// 16位,0x0001
int length;// 32位,从下一字节开始至末尾的数据长度即数据区长度(后面会提到数据区)
short channelId;// 16位,频道id
byte channelDes;// 8位,频道信息说明(类似说明信息的长度)
for(i=0;i<challelDes;i++){
byte_data;// 8位
}
}
【说明】
tag:请求的唯一标识符,2字节
length:数据区长度,4字节
channelId:2字节
channelDes:频道说明信息的长度,1字节
for循环:存放频道说明信息的真实数据
前面2个绿色的部分称为报头,固定6字节
中间2个蓝色的部分称为基本数据区
最后红色部分称为真实数据区,所有String信息都放在这里
数据区=基本数据区+真实数据区
协议=报头+数据区
即:
协议:tag length 基本数据区 真实数据区
报头 数据区
对于基本数据类型,直接存放在基本数据区,对于String类型,在基本数据区描述它的长度和真实数据区的地址,然后存到真实数据区
解码必须获得的信息:
1、请求标识:根据不同的类型进行解析
2、数据区总长度:可判断是否接收数据成功
3、偏移地址:知道真实数据区的位置(偏移地址即tag+length+基本数据区的长度,接下来一个字节肯定会走到真实数据区,目的就是定位真实数据区的开始下标)
响应协议格式
res{
short tag;// 16位,0x0002
int length;//从下一字节开始至末尾的数据长度
int channelAddress;
byte channelLen;
int count;
for(i=0;i<count;i++){
byte index;// 下标
int num;// 编号
int size;// 大小
int startTime;// 开始时间
int totalTime;// 总时间
byte status;// 状态
}
}
协议的格式根据需求可以很灵活的进行变动。以上只是举例。
for循环中可以存放一组对象数据。
本文作用主要用于学习mina方面的知识,为了加深理解和记忆特记。
本来是有图片的,很清晰直观,但上传图片需要图片链接,本地图片无法上传,希望各位高手可以给个解决办法。
图片以附件形式上传了。
本文内容整理自Mina2.0完全剖析,顺带上传PDF供大家学习。
- 大小: 35 KB
- 大小: 12 KB
- 大小: 14 KB
- 大小: 95.9 KB
分享到:
相关推荐
总的来说,Mina自定义协议通信示例是一个很好的学习资源,它涵盖了网络编程的核心概念,如事件驱动模型、非阻塞I/O和自定义编解码。通过深入理解并实践这个示例,开发者能更好地掌握Mina框架,并有能力解决复杂网络...
**Mina自定义协议简单实现** Apache Mina(Minimum Asynchronous Network)是一个开源的网络通信框架,它为Java开发者提供了一种高效、灵活且可扩展的框架,用于构建高性能的网络应用程序,如服务器和客户端应用。...
**mina自定义编解码器详解** mina是一个Java开发的网络通信框架,广泛应用于TCP和UDP协议的服务器和客户端开发。在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节...
mina仿qq聊天功能,自定义协议,协议的编码和解码详解,发送xml对象json,mina开发大全,详细api ...mina开发的在线聊天工具,mina仿qq功能,mina自定义协议,可以仿http请求,mina心跳等技术大全,mina功能大揭密
mina 协议 解包 粘包
本文将深入探讨如何在Mina中自定义编码解码器,这对于实现特定的网络通信协议至关重要。 首先,了解Mina的编码解码器架构是必要的。Mina使用了Chain of Responsibility设计模式,通过Filter链来处理进来的数据。...
总之,自定义Mina编码器以实现会话累积功能涉及到了网络通信的优化,需要对Mina框架有深入的理解,以及对序列化和网络通信协议的熟悉。通过这样的定制,我们可以更高效地利用网络资源,提升系统的整体性能。
《MINA框架自定义解编码器的深度解析与实践》 MINA(Java Multithreaded Network Application ...简单_mina项目的实例为初学者提供了良好的学习起点,通过研究和实践,可以更深入地掌握MINA自定义解编码器的使用技巧。
7. **配置MINA**:在你的MINA服务端或客户端配置中,注册你的自定义编码器,这样MINA在处理数据时会自动调用你的编码逻辑。 通过这种方式,自定义编码器可以让你更灵活地控制数据在网络上的传输形式,以适应各种...
通过自定义过滤器,我们可以实现HTTP协议的解析、编码等功能。 2. **Handler处理**:MINA的处理器是网络事件的实际处理者,负责接收和发送数据。在HTTP协议实例中,Handler会解析接收到的HTTP请求,并生成相应的...
在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...
描述中提到的“mina自定义编解码”是MINA框架的一个关键特性。MINA允许开发者自定义数据编码和解码方式,这可以根据实际需求来优化数据传输效率和格式。自定义编解码器可以实现特定的数据压缩、加密或者特定协议的...
以下是对Mina框架实例、自定义协议包、编码器和解码器的详细解释: **Apache Mina框架实例:** Apache Mina框架的核心思想是基于事件驱动和非阻塞I/O,这使得它在处理大量并发连接时表现出色。在Mina中,开发者可以...
过滤器链的概念是MINA框架的核心特性之一,它允许开发者插入自定义的过滤器来处理进来的数据或者发送出去的数据。协议解码过滤器(ProtocolDecoderFilter)就是这样的一个过滤器,它的主要任务是从接收到的原始字节...
jaca视频教程 jaca游戏服务器端开发 Netty NIO AIO Mina视频教程 课程目录: 一、Netty快速入门教程 01、第一课NIO 02、第二课netty服务端 03、第三课netty客户端 ...16、Mina学习之自定义协议-客户端实例.flv
在Apache Mina框架中,IoFilter是核心组件之一,用于拦截和过滤I/O操作中的各种信息,...实现这些功能时,建议开发者理解并应用现有的IoFilter实现类,或者根据需求自定义新的IoFilter类,以达到最大的灵活性和效率。
Mina是Apache下的一个高效、轻量级的网络通信框架,支持多种传输协议如TCP、UDP等,并提供了丰富的过滤器机制来处理复杂的网络通信任务。其中,`ProtocolCodecFilter`是Mina中用于处理数据编码与解码的核心组件之一...
"简单自定义协议(报头式)的即时通讯"则说明了项目中定义了一种基于报头的通信协议。在即时通讯中,报头式协议通常包含消息长度、类型等元信息,这些信息用于指示消息的边界和类型,以便接收方能正确解析消息内容。...
你可以自定义实现,以适应你的特定协议需求。 5. **Executor**:Mina使用Executor服务来管理和调度任务,确保异步操作的执行。 6. **Transport Layer**:Mina支持多种传输层实现,如TCP、UDP等,这些都抽象为...
你可以定义自定义的协议解析器,将接收到的原始字节流转换为有意义的业务对象,比如XML或JSON报文。在接收端,这些对象会被反序列化,从而可以进行业务逻辑处理。Mina的ProtocolDecoder和ProtocolEncoder接口是实现...