一 Protobuf是什么
Protobuf(Google Protocol Buffers)是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库.它和XML和Json数据差不多,把数据已某种形式保存起来.Protobuf相对与XML和Json的不同之处,它是一种二进制的数据格式,具有更高的传输,打包和解包效率.
二 Protobuf的语法
1 *.proto文件中数据类型可以分为两大类:
复合数据类型 + 标准数据类型
复合数据类型包括:枚举和message类型
标准数据类型包含:整型,浮点,字符串等
2 数据类型前面修饰词:
①required: 必须赋值,不能为空,否则该条message会被认为是“uninitialized”。build一个“uninitialized” message会抛出一个RuntimeException异常,解析一条“uninitialized” message会抛出一条IOException异常。除此之外,“required”字段跟“optional”字段并无差别。
②optional:字段可以赋值,也可以不赋值。假如没有赋值的话,会被赋上默认值。
③repeated: 该字段可以重复任意次数,包括0次。重复数据的顺序将会保存在protocol buffer中,将这个字段想象成一个可以自动设置size的数组就可以了。
3.每个字段要给数字:
该Number是用来标记该字段在序列化后的二进制数据中所在的field,每个字段的Number在message内部都是独一无二的。也不能进行改变,否则数据就不能正确的解包。
4 数据类型
数据类型这里可以去看Protobuf支持的基本数据类型的表
三 Protobuf生成文件
使用点bat脚本如下,就可以生成对于的.h和.cpp