谷歌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

相關文章
相關標籤/搜索