强大的Protobuf入门

一 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

猜你喜欢

转载自blog.csdn.net/qq_33767353/article/details/83051131