protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化
1.proto文件,google buffer的原型文件。通过protoc.exe --cpp_out生成对应的cpp文件,
通过protoc.exe –I生成对应的二进制文件(.proto文件)。syntax = "proto2";表示协议版本。
2.repeated类型的使用:相当于std的vector。
message Person {
required int32 age = 1;
required string name = 2;
}
message Family {
repeated Person person = 1;
}
Family family;
Person* person;
person = family.add_person(); // 添加一个家庭成员,John
person->set_age(25);
person->set_name("John");
person = family.add_person(); // 添加一个家庭成员,Lucy
person->set_age(23);
person->set_name("Lucy");
// 显示所有家庭成员
int size = family.person_size();
for(int i=0; i<size; i++) {
Person psn = family.person(i);
cout << i+1 << ". " << psn.name() << ", 年龄 " << psn.age() << endl;
}
转载于:https://my.oschina.net/yizhangxyz/blog/868893