protobuf使用方法 c 為例

2021-06-20 09:01:27 字數 1396 閱讀 3192

protobuf使用方法(c++為例)

1. 定義資料結構;

2. 實現資料結構與byte的相互轉換;

首先解釋下為何乙個資料結構要平白無故的轉換成byte:

因為網路上傳輸的都是二進位制,所以要實現資料結構和byte的相互轉換;

一般流程是:

傳送方:資料結構->byte    將byte傳送;

接收方:接收byte,轉換:byte->資料結構

下面以例項進行解釋:

1.定義資料結構

message echorequest 

message echoresponse

檔案儲存為echo.proto,然後執行

protoc -i=. --cpp_out=. echo.proto

生成echo.pb.h和echo.pb.cc

至此,第一步完成啦o(∩_∩)o

2. 實現資料結構與byte的相互轉換;

很簡單,就3步:

1.賦值;

2.轉成byte;

3.將byte轉回資料結構;

#include //剛才生成的.h

#include "echo.pb.h"

int main(){

//賦值

echorequest input;

input.set_user("user123");

input.set_message("456");

//轉換成位元組,其型別是std::string,這是google定的介面 直接用

std::string bytes;

input.serializetostring(&bytes);

echorequest output;

//將byte轉換回來

output.parsefromstring(bytes);

//驗證結果

std::cout<

g++ -o 1_res test.cpp echo.pb.cc -i. -i./protobuf/include/ -l ./protobuf/lib -lprotobuf

執行./1_res輸出結果:

user123 456

至此,你就學會了如何使用protobuf。比較牛的是,定義資料結構支援巢狀。即資料結構裡還可以有資料結構。

總結細心的話你會發現,用protobuf完全不用自己定網路協議了! 正是如此!

protobuf做的不止這些,他連rpc的框架都實現了,不過僅僅是框架,但未填充策略**。換句話說:

protobuf定義了rpc的實現架構,其收益是:

無論如何實現rpc框架,使用者的使用方式80%是相同的;

後面我會講解如何在protobuf基礎上,實現rpc框架;

Protobuf的使用方法

編譯完成以後,會有乙個.lib 和 乙個.exe 檔案 我們在這個目錄下隨便寫乙個 proto的標頭檔案先 syntax proto3 import proto package warrially message person message phonenumber repeated phonenu...

Protobuf安裝使用方法

特點 google 出品開源免費 跨平台 支援c 且資料體量更小 解析速度更快。用vscode編輯比較方便,適合用於傳輸客戶端和伺服器的各種協議 客戶端的各種request和服務端返回的response 使用方法 c proto path proto檔案的目錄 csharp out cs檔案的輸出目...

SVN簡單流程 以公司的使用方法為例

svn一般包括 branch 每個branch版本都要生成對應的tag.例如 branch版本號為1.0.0,那麼提交後生成的tag版本號為1.0.0.0 當branch修復bug提交後,tag的版本號為1.0.0.1 trunk trunk一直往前走,不會回滾 tag 供測試使用 branch 自...