好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 詳解Google Protobuf簡明教程

詳解Google Protobuf簡明教程

熱門標簽:鶴壁外呼系統公司 外呼系統號顯示星號怎么看 揭陽電腦外呼系統公司 高德地圖標注常顯 銀川語音外呼系統中心 臨沂ai電銷機器人招商 承德地圖標注公司收費 華創e路航彩票銷售點地圖標注 suitecrm 地圖標注

Protobuf是什么

Protobuf實際是一套類似Json或者XML的數據傳輸格式和規范,用于不同應用或進程之間進行通信時使用。通信時所傳遞的信息是通過Protobuf定義的message數據結構進行打包,然后編譯成二進制的碼流再進行傳輸或者存儲。

Protobuf的優點

相比較而言,Protobuf有如下優點:

  • 足夠簡單
  • 序列化后體積很小:消息大小只需要XML的1/10 ~ 1/3
  • 解析速度快:解析速度比XML快20 ~ 100倍
  • 多語言支持
  • 更好的兼容性,Protobuf設計的一個原則就是要能夠很好的支持向下或向上兼容

如何安裝使用Protobuf

安裝

使用Python的話簡便的安裝方法如下

pip install protobuf  # 安裝protobuf庫
sudo apt-get install protobuf-compiler # 安裝protobuf編譯器

如果自己編譯安裝的話可以參考git上安裝指導,雖然寫得不清楚:)

使用

使用Protobuf有如下幾個步驟:

  • 定義消息
  • 初始化消息以及存儲傳輸消息
  • 讀取消息并解析

下面以一個實際的例子來說明如何使用Protobuf,先展示出項目的實際目錄結構:

.
├── my
│  ├── helloworld_pb2.py
│  ├── helloworld_pb2.pyc
│  └── __init__.py
├── mybuffer.io
├── my.helloworld.proto
├── reader.py
└── writer.py

定義消息

Protobuf的消息結構是通過一種叫做Protocol Buffer Language的語言進行定義和描述的,實際上Protocol Buffer Language分為兩個版本,版本2和版本3,默認不聲明的情況下使用的是版本2,下面以版本2為來舉個栗子, 假設我們定義了文件名為my.helloworld.proto的文件,如下:

package my;
message helloworld
{
  required int32 id = 1;
  required string str = 2;
  optional int32 wow = 3;
}

然后我們需要使用protoc進行編譯

protoc -I=./ --python_out=./ ./my.helloworld.proto
  • -I: 是設定源路徑
  • --python_out: 用于設定編譯后的輸出結果,如果使用其它語言請使用對應語言的option
  • 最后一個參數是你要編譯的proto文件

現在已經定義好了消息的數據結構,接下來看下如何使用

消息初始化和存儲傳輸

我們來通過writer.py來初始化消息并存儲為文件,代碼如下:

from my.helloworld_pb2 import helloworld

def main():
  hw = helloworld()
  hw.id = 123
  hw.str = "eric"
  print hw

  with open("mybuffer.io", "wb") as f:
    f.write(hw.SerializeToString())

if __name__ == "__main__":
  main()

執行writer.py之后就會將序列化的結果存儲在文件mybuffer.io中,然后看下如何讀取

消息讀取與解析

我們通過reader.py來讀取和解析消息,代碼如下:

from my.helloworld_pb2 import helloworld

def main():
  hw = helloworld()
  with open("mybuffer.io", "rb") as f:
    hw.ParseFromString(f.read())
    print hw.id
    print hw.str

if __name__ == "__main__":
  main()

Reference:

Developer Guide
Github

到此這篇關于詳解Google Protobuf簡明教程的文章就介紹到這了,更多相關Google Protobuf內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Protobuf的簡要介紹及使用詳解
  • Protobuf在Cmake中的正確使用方法詳解

標簽:萊蕪 三沙 忻州 汕尾 許昌 七臺河 咸寧 棗莊

巨人網絡通訊聲明:本文標題《詳解Google Protobuf簡明教程》,本文關鍵詞  詳解,Google,Protobuf,簡明教程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Google Protobuf簡明教程》相關的同類信息!
  • 本頁收集關于詳解Google Protobuf簡明教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久人人干| 日日av| 一个上面添两个下吸vk| 中文字幕一区二区三区四区在线观 | 婷婷九月丁香| 老司机黄| 极品尤物魔鬼身材啪啪仙踪林| 免费观看暖暖遇见你西瓜| 国产精品久久久久精品综合紧男同| 强制憋尿失禁羞辱| 欧美3p在线观看| 人人做人人做人人爱| 国产极品白嫩粉嫩三区四区| 国产AV一区二区三区免费观看| 男人日母鸡| 私密教学漫画| 女人下部毛毛扒开给男人爽 | 男女后进式猛烈XXOO网站| 日本少妇做爰免费视频软件| 吻胸摸下面抓胸视频摸屁股 | free18在线日本| 国产精品女同一区二区| 穿成年代文里的前妻| 美女写真福利视频大全| 香蕉色香蕉在线视频| 失禁おもらし漏尿网站| 在教室被老师cao到爽| 乖乖让我cao腿趴开h爽视频| 网红思瑞一区二区三区| 欧美日韩成人精品视频在线观看| jizzjizz野外女人| 翁熄性放纵之小莹全本| 久久疯狂做爰流白浆XX | 温润公子受被肉到失禁| 91在线无码精品秘?入口软件| 公交车上荫蒂添的好舒服口述视频| 看黄aaaaa大片| 护士夜班和医生做爰高潮小说 | 凌虐校花日常np沈清清| 精品视频一区二区三区免费| 日本激情|