Я пытаюсь взломать клиента вместе в C ++, используя протоколы Google Buffers и boost :: asio.
Моя проблема в том, что я не знаю, как я могу передать сообщение protobuf в asio.Вот что у меня есть:
// set up *sock - works
PlayerInfo info;
info.set_name(name);
// other stuff
Теперь я знаю, что следующее неверно, но я все равно опубликую это:
size_t request_length = info.ByteSize();
boost::asio::write(*sock, boost::asio::buffer(info, request_length));
Я дошел до того, что знаю, чтоЯ должен по-разному упаковать свое сообщение в буфер - но как?
Вообще, мне трудно понять, как работает boost :: asio.Существуют некоторые учебные пособия, но они обычно охватывают отправку стандартных форматов данных, таких как целые, которые работают "из коробки".Я подумал, что моя проблема в сериализации , но с другой стороны я узнал, что protobuf должен сделать это для меня ... и теперь я в замешательстве;)
Спасибо за вашу помощь!
-> Даниэль Геригер предоставил решение, большое спасибо!