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 自...