C ++ protobuf не может десериализовать сообщение - PullRequest
0 голосов
/ 18 ноября 2018

Я столкнулся с проблемой в 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

recver пуст, почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...