我在protobuf中遇到了在C ++中反序列化消息的问题。 这是原始消息定义:
syntax="proto3";
message my_message{
int32 flag=1;
sign_detail sdetail=2;
}
message sign_detail{
string usr_id=1;
string usr_nickname=2;
int32 phone_num=3;
string usr_sex=4;
string email=5;
string password=6;
}
然后我收到一个插座并将其放在buf中:
my_message recver;
int n=recv(connfd, buf, MAXLINE, 0);
printf("%s\n", buf);
recver.ParseFromArray(buf, n);
cout<<"recver:"<<recver.flag();
但是我明白了:
flag: 2
sdetail {
phone_num: 123
email: "123"
password: "123"
}
recver:0
接收器为空,为什么?