标签:
1.Protocol Buffers简介
Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。
2.protobuf相比Xml的优点
message helloworld {
required int32 id = 1; // ID
required string str = 2; // str
}
5.编译 .proto
protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/helloworld.proto
protoc -I=. --cpp_out=. ./helloworld.proto
命令将生成:
helloworld.pb.h , 定义了 C++ 类的头文件
helloworld.pb.cc , C++ 类的实现文件
6.测试程序
#include "helloworld.pb.h" //包含生成的头文件 #include <iostream> #include <fstream> using namespace std; int main(int argc, char* argv[]) { helloworld msg; msg.set_id(101); msg.set_str("hello"); // 序列化消息 char buff[1024] = {0}; msg.SerializeToArray(buff, 1024); //解析消息 msg.ParseFromArray(buff, 1024); cout << msg.id() << endl; cout << msg.str() << endl; }
7.编译运行
g++ -o main main.cpp helloworld.pb.cc -lprotobuf -lpthread
./main
标签:
原文地址:http://www.cnblogs.com/moxiaopeng/p/4988793.html