一、Protobuf简介
Protobuf(protocol buffer):是google 的一种数据交换的格式,它独立于平台语言。 google 提供了protobuf多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。它是一种二进制的格式,网络传输时节省带宽资源,而且它只存储有效数据,比使用xml、json进行数据交换快许多,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一。 可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
二、Protobuf语法
使用protobuf前需要先进行安装,可以参考该博客:Centos 7安装protobuf3.6.1
1、对于普通单个成员变量,设置方法为set_成员变量名();读取值为实例化对象.成员变量名();
2、对于一个消息类型里成员变量本身又是一个对象,利用mutable_成员变量名()获取相应成员对象的指针,然后使用该指针修改成员数据。
3、对于列表类型,调用add_成员变量名()获取列表所管理的对象的指针,然后使用该指针修改成员数据。
三、protobuf简单使用实例
1、先创建xxx.proto文件,然后在xxx.proto配置文件定义好消息类型,消息类型存储的为简单类型。
syntax = "proto3"; //声明了protobuf版本
package fixbug; //声明代码所在的包(类似于C++的namespace)
//定义登录请求消息类型:name、pwd
message LoginRequest
{
string name = 1; //表示name为LoginRe

最低0.47元/天 解锁文章
3151

被折叠的 条评论
为什么被折叠?



