EasyProtocol介绍和使用

原创
2015/04/11 19:11
阅读数 1.5K

       EasyProtocol是一种序列化工具,目前提供了java,c#的支持,由于它是一种二进制的格式,比使用json,xml 进行数据交换快许多。当然比起protocolbuffer这种专业的序列化工具,可能在性能,大小上差一点,但是很轻巧,简单,适合互相学习,比较适合一些小型项目。

包结构:

根目录下2个文件夹: languagetools
1.language:分别对java和c#语言提供支持,提供了依赖的jar包和dll文件
2.tools:协议生成工具
progen.bat      --执行生成类文件的批处理
easyProtocol-tools.jar    --生成类文件需要的jar包,也是唯一的jar包
config.xml       --生成类文件的相关配置 。具体配置项可以参考文件的注释
progen.xml	 --协议文档汇总文件
protocols        --存放我们手动编写的协议

协议格式说明:
由一个xml文件来定义protocol和bean,这个协议文档的格式:
<protocols>
  <Import file=""/>
  <Namespace name="">
    <Bean name="">
      <variable name=""  type=""/> 
      ...
    </Bean>
    ...
  </Namespace>

  <Namespace name="">
    <Protocol name="" type="" maxsize="">
      <variable name="" type=""/>
      ...
    </Protocol>
    ...
  </Namespace>
</protocols>

整个协议文档由Import和2个Namespace元素组成:

元素 说明       属性介绍
Import
用来导入其他的协议文档,经常是一些公共使用的协议文档
file:导入文件的路径
Namespace
命名空间,包含bean元素和Protocol元素
name:bean和Protocol的命名空间
Bean

定义一个实体bean,方便在Protocol中调用,
可以包含多个variable子元素

name:名称
Protocol
定义一条协议,可以包含多个variable子元素
name:协议名称
type:协议号
maxsize:协议大小
variable
定义一个变量
name:变量名称

type:变量类型
支持的类型:int,byte,boolean,short,
float,double,long,string,map,set,list,vector,array

       备注: 具体可以参考自带的实例protocols文件夹下,分别是一个common.xml公共模块协议文档和module_11_player.xml玩家模块协议文档

github链接:https://github.com/ksfzhaohui/easyProtocol
下载地址:/code/snippet_159239_47065

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
2 收藏
0
分享
返回顶部
顶部