谷歌protocolbuff使用说明步骤

Protocolbuffhtml

目录git

1       Protocolbuff定义和做用... 1github

2       Protocolbuff的使用步骤... 1编程

3       .proto编写格式... 3json

3.1      编写示例... 3数组

3.2      变量修饰符required 、optional、repeated. 4安全

3.3      基本数据类型... 4服务器

 

1         Protocolbuff定义和做用

Protocolbuff是一种数据存储传输格式,相似于Json、XML 数据存储格式。发送方将结构体序列化为二进制字节码,能够减小传输字节数量,加强安全性。接收方将字节码再反序列化为结构体。解析快速,无需像json或者xml那样,两边添加生成报文和解析报文的编码;编程语言

优缺点ui

优势:Protocolbuff将结构体或对象转换成二进制串,因此体积小,传输快,使用简单,加密性好;

缺点:可读性差,通用性差;

2         Protocolbuff的使用步骤

(1)    下载protoc.exe文件

源码在 https://github.com/google/protobuf , 若是不想本身编译得到最新版本,则能够下载官方编译好的各个平台的,下载地址:https://github.com/google/protobuf/releases

(2)编写结构体的.proto文件CommEventLog.proto

(3)在window系统下,在protoc.exe所在的文件夹打开cmd,用以下命令生成C++的结构体文件;

protoc –I=./ --cpp_out=./ ./ CommEventLog.proto

protoc执行程序,后面的是命令行参数

-I 输入目录

--cpp_out 输出目录

./ CommEventLog.proto表示须要转换的文件;

最后输出的结果是C++的类文件CommEventLog.pb.cc和CommEventLog.pb.h

(4)将CommEventLog.pb.cc和CommEventLog.pb.h两个文件复制到须要的工程。包含以下头文件,添加libprotobuf.lib、libprotobuf.dll。代码中建立类的对象,CommEventLog evnetlog;

         

(5)接收到二进制字节码时,用对象的方法ParseFromArray 去将二进制字节码转化为结构体;

if (evnetlog.ParseFromArray(buff,bufflen)==true)

{}

(6)而后就能够用变量名称命名的方法去获取变量的值;

string strtime=evnetlog.start_time();

 

3         .proto编写格式

3.1  编写示例

Proto文件开头定义一个包名,即命名空间,为了不不项目的命名冲突问题。而后用关键字message来定制结构体;

package protocobuff_Demo;//包名

message CommEventLog

{

       required string log_id               =     1;//日志Id,惟一标识一次发生的事件

       required int32  event_state      =   2;//事件状态,事件状态为开始或者瞬时时保存事件,状态为结束时更新日志结束时间,状态为更新时保存联动结果;0: 瞬时事件,保存;1: 事件开始,保存;2: 事件结束,更新结束时间;3: 事件脉冲,客户端和服务器使用,CMS不用;4: 事件更新,联动结果更新

       optional int32  event_level            =     3;//事件等级

       optional string unit_idx           =     4;//控制中心编号

       optional int32  event_type            =     5;//事件类型

       optional string event_type_name    =     6;//事件类型名称

       optional int32 sub_sys_type     =   7;//事件所属子系统类型,废弃,事件整改,没有子系统属性了2015-10-28 13:45:13

       optional string event_name             =     8;//事件名称

       optional string start_time         =     9;//事件开始时间

       optional string stop_time       =       10;//事件结束时间

       optional string source_idx        =     11;//事件源编号

       optional int32 source_type              =     12;//事件源类型

       optional string source_name           =     13;//事件源名称

       optional string log_txt                     =     14;//事件描述信息

       optional string region_idx        =     15;//事件源区域编号,可选

       optional bytes  ext_info        =   20;//事件扩展信息,各个子系统根据子系统的消息结构体定义解析

       repeated int32  user_id                 =     21;//事件接收的User Id数组,用于日志查询权限控制

}

3.2  变量修饰符required 、optional、repeated

变量修饰符的做用是修饰变量,肯定变量是否必须赋值。

 

3.3  基本数据类型

基本数据类型用于定义变量类型。与编程语言的中的变量相似,名称稍有不一样,含义一致。

 

 

 

 

 

 

本身编了一个股票监控软件,有以下功能,有兴趣的朋友能够下载;

(1)   个股监测。监测个股实时变化,能够监测个股大单交易、急速拉升和降低、主力入场和出场、股票最高点和最低点提醒。检测到最高点、最低点、主力进场点、主力退场点、急速拉升点、急速下跌点,给出语音或者声音提醒,不用再时刻看着大盘了,给你更多自由的时间;

(2)   大盘监测。监测大盘的走势,采用上证、深证、创业三大指数的综合指数做为大盘走势。并实时监测大盘的最高点和最低点、中间的转折点。

(3)   股票推荐。还能根据历史数据长期或短时间走势进行分析,对股市3千多个股票进行分析对比,选出涨势良好的股票,按照增加速度从大到小排序,推荐给你涨势良好的股票;

下载地址:

1.0.3版本(修复大盘指数崩溃缺陷)下载地址:

连接:https://pan.baidu.com/s/1BJcTp-kdniM7VE9K5Kd3vg 提取码:003h

更新连接:

https://www.cnblogs.com/bclshuai/p/10621613.html

 

 

 

 

 

 

 

 

参考文献

http://www.javashuo.com/article/p-rrgragtp-ec.html

https://cloud.tencent.com/developer/article/1394349

相关文章
相关标签/搜索