1、https://developers.google.com/protocol-buffers/docs/cpptutorial?hl=zh-CN
2、https://developers.google.com/protocol-buffers/docs/proto?hl=zh-CN
3、https://developers.google.com/protocol-buffers/docs/reference/cpp/index?hl=zh-CN
4、https://developers.google.com/protocol-buffers/docs/reference/cpp-generated?hl=zh-CN
5、https://developers.google.com/protocol-buffers/docs/encoding?hl=zh-CN
1、用.proto文件描述消息的結構,就是描述這個消息裏有哪些個字段
2、協議緩衝區編譯器將根據.proto文件生成相應的C++類(這個類實現了二進制數據的編碼和解析)
3、.proto文件編寫:
首先是包的聲明,這個在C++中將會轉換爲命名空間(namespaces)
接着是消息字段的聲明,字段類型可以是double、float、int32、int64、uint32、uint64、sint32、sint64、fixed32、fixed64、sfixed32
、sfixed64、bool、string、bytes,還有自定義消息類型
消息體內可嵌套定義消息
4、消息字段有三種修飾符required(必須的),optional(可選的,使用填入值或默認值),repeated(可重複的,包括0次,可看成動態數組)
5.生成C++代碼 運行命令 protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto,當然要替換相應的變量
編譯後將生成對應文件的.pb.h和.pb.cc文件
6、.proto文件內容要嚴格區分大小寫
7、用"//"進行行註釋
8、每個消息字段使用一個唯一tag來標記,可理解爲放置的位置
9、可使用import語句導入其它的.proto文件
10、可給文件指定一個包名 package ...;
php擴展
https://github.com/chobie/php-protocolbuffers
http://dofound.blog.163.com/blog/static/17114324620136224934685/