EasyProtocol是一种序列化工具,目前提供了java,c#的支持,由于它是一种二进制的格式,比使用json,xml 进行数据交换快许多。当然比起protocolbuffer这种专业的序列化工具,可能在性能,大小上差一点,但是很轻巧,简单,适合互相学习,比较适合一些小型项目。
包结构:
根目录下2个文件夹: language和 tools
1.language:分别对java和c#语言提供支持,提供了依赖的jar包和dll文件2.tools:协议生成工具progen.bat --执行生成类文件的批处理easyProtocol-tools.jar --生成类文件需要的jar包,也是唯一的jar包config.xml --生成类文件的相关配置 。具体配置项可以参考文件的注释progen.xml --协议文档汇总文件protocols --存放我们手动编写的协议协议格式说明: 由一个xml文件来定义protocol和bean,这个协议文档的格式:
... ... ... ...
整个协议文档由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链接:
下载地址: