【发布时间】:2011-10-07 09:06:36
【问题描述】:
我正在尝试将 1kb 的数据从“服务器”发送到“客户端”,但我无法正确处理。 在这方面我需要做几件事: 1)需要使用boost-asio sockets来传输数据 2)需要序列化我创建的类型(数据包),它将包含数据作为字符串或字符*
这是怎么回事:
首先,我从服务器上的示例文本文件中获取 1kb 的数据。我得到这个并将其放入我创建的数据包类型中。我在 Packet 中定义了数据字段,以将这些数据保存为 std::string。 (我尝试了 char* 但效果不佳 - 请参阅下一段)。
其次,我使用 boost text_oarchive 对其进行序列化。如果 Packet 类型只包含一个字符串,我对它进行序列化没有问题,但我真正想要的是一种将数据类型序列化为 char 数组的方法(以便它与下面的套接字更好地配合)
第三,我通过 boost asio 套接字发送它。在这里我遇到了一个问题,因为我找不到通过套接字连接发送 std::string 的方法。我作为示例和文档中看到的所有内容都需要使用某种类型的 char* 而不是字符串的缓冲区。
只是头疼。你能帮忙吗?
【问题讨论】:
-
没有代码无法回答,请编辑您的问题以包含您目前所做的代码。
标签: c++ sockets serialization boost boost-asio