定义proto大致如下:
enum gender {
unknown = 0;
male = 1;
female = 2;
}
message member {
string name = 1;
int32 age = 2;
gender gender = 3;
}
message battle {
repeated member team_a = 1;
repeated member team_b = 2;
string desc = 3;
}
声明一个battle类型变量,对接收到的数据反序列化后使用:
battle battleData;
battleData.ParseFromArray(buf,size);
member team_a,team_b;
if(battleData.ByteSize() > 0) {
for(int i = 0;i < battleData.team_a_size();i++){
team_a = battleData.team_a(i);
string log;
log = team_a.name()+to_string(team_a.age())+to_string(team_a.gender());
Log(log.c_str());
}
...
}