工具类

C++入门到放弃(四),protobuf教程

2016-11-19  本文已影响2558人  chanming

前言

在网络传输中,经常有大端小端的区别,并且与我们编写的程序交互的,不一定也是C/C++,例如安卓,所以我们需要一个协议,能够进行数据的传输。大部分人最常用的,可能是json了,今天我们介绍另外一个工具,protobuf,这是一个google的开源项目。支持c++,java,python等多种语言。

下载与安装

github代码地址
进入代码目录:
./configure --prefix=/usr/local/protobuf
sudo make
sudo make install
如果是ubuntu或者centos的,也可以使用yum或者apt-get安装

使用

使用protobuf需要我们定义一个proto文件,用来定义protobuf消息。

Protobuf消息定义

消息由至少一个字段组合而成,类似于C语言中的结构。每个字段都有一定的格式。
字段格式:限定修饰符 | 数据类型 | 字段名称 | = | 字段编码值 | [字段默认值]

实践:

接下来需要跟客户端进行交互,我们新建一个touch_message.proto的文件,定义TouchMesssage理解为一个心跳的data。



然后执行命令

Paste_Image.png

我们就能看到生成的对应的.h跟.cpp文件了。


我们发现其实是生成一个类,类中有着对应的方法。



我们在另外一个文件中编写一个test的类。我们可以用get/set方法。SerializeToArray是序列化,ParsFromArray是反序列化。

然后我们就可以编译运行了,编译的时候需要引入对应的.h文件


需要把对应的参数替换成你安装的位置即可。


运行结果,达成预期,并且size会比我们使用json更小。别小看小了这么一点点。当你系统的量上来后,作用还是很大的。

上一篇 下一篇

猜你喜欢

热点阅读