请求协议格式
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自定义协议通信的示例
公司需求,做的简单的Demo,可以拓展,Mina自定义协议简单实现,象征性得收取2积分
mina仿qq聊天功能,自定义协议,协议的编码和解码详解,发送xml对象json,mina开发大全,详细api ...mina开发的在线聊天工具,mina仿qq功能,mina自定义协议,可以仿http请求,mina心跳等技术大全,mina功能大揭密
mina 协议 解包 粘包
mina自定义编解码 不错的资源 ----其实不怎么样,技术就是拿出来共享的,开源。大家一起前进
jaca视频教程 jaca游戏服务器端开发 Netty NIO AIO Mina视频教程 课程目录: 一、Netty快速入门教程 01、第一课NIO 02、第二课netty服务端 03、第三课netty客户端 ...16、Mina学习之自定义协议-客户端实例.flv
apache mina 框架 实例 自定义协议包 自定义编码器 解码器 服务端 客户端
实现了Mina框架简单的换行符编解码的服务器客户端通信,简单自定义协议(报头式)的即时通讯
这个是我学的apache mina2.0学习笔记的实例
最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步....Demo3:自定义协议编解码 31 3.IoHandler接口 50 三. Mina实例 50 四. 其他 50
通俗的讲就是,xml形式消息的编码与解码,我们完全没有必要在国外这套不成熟的openfire 与xmpp 上耗费过多的精力去研究,我们完全可以通过apache mina 自定义自己的通讯协议,并可以为它使用自己的名字。我们不要...
mina学习资料 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步....第三步....第四步....第五步....二. Mina基础 9 ...Demo3:自定义协议编解码 31 3.IoHandler接口 50 三. Mina实例 50 四. 其他 50
Mina 2.0.16 简介 代码实例 Mina 是Apache开发的一个开源的网络通信框架,基于java NIO实现。 建立server与client之间的会话连接,对会话消息进行过滤; 非阻塞消息会话机制;...通过自定义的通信协议进行编解码消息。
说明:该服务器框架试用于需要频繁修改数据库内容的游戏,没有使用数据库缓存,jdbc直接修改数据库内容。 申明: ... ...自定义通信协议 net.mina.service:网络层(MINA框架,这个不多说,你懂的)
MINA框架的特点有:基于java NIO类库开发;采用非阻塞方式的异步传输;事件驱动;支持批量数据传输;支持TCP、UDP协议;控制反转的设计模式(支持Spring);采用优雅的松耦合架构;可灵活的加载过滤器机制;单元测试...
routor使用mina,其中包含有自定义协议的编解码器,消息格式确定
连接mina的API,其中包含有自定义协议的编解码器,消息格式确定
其中有连接mina的API,其中包含有自定义协议的编解码器,消息格式确定
服务端基于Apache MINA设计开发,可自由切换TCP、UDP...支持工业控制中的MODBUS、RS485、RS232、自定义TCP协议等。 采用优雅的松耦合架构设计; 支持多编解码功能,各协议组件相互独立; 支持协议解析组件热插拔。