小编adi*_*i64的帖子

使用boost :: asio发送Protobuf消息

我试图使用Google的Protocol Buffers和boost :: asio在C++中一起破解客户端.

我的问题是我不知道如何将protobuf消息提供给asio.我有的是这个:

// set up *sock - works
PlayerInfo info;
info.set_name(name);
// other stuff
Run Code Online (Sandbox Code Playgroud)

现在我知道以下是错误的,但我会发布它:

size_t request_length = info.ByteSize();
boost::asio::write(*sock, boost::asio::buffer(info, request_length));
Run Code Online (Sandbox Code Playgroud)

我知道我必须以不同的方式将我的信息打包到缓冲区 - 但是如何?

一般来说,我很难搞清楚boost :: asio是如何工作的.有一些教程,但它们通常只包括发送标准数据格式,如ints,它是开箱即用的.我认为我的问题是序列化,但另一方面我了解到protobuf应该为我做这个......现在我很困惑;)

谢谢你的帮助!

- > Daniel Gehriger提供了解决方案,非常感谢!

c++ networking boost protocol-buffers boost-asio

11
推荐指数
1
解决办法
6405
查看次数

标签 统计

boost ×1

boost-asio ×1

c++ ×1

networking ×1

protocol-buffers ×1