我正在尝试将1kb的数据从“服务器”发送到“客户端”,但我无法做到正确。 我需要做一些事情: 1)需要使用boost-asio套接字来传输数据 2)需要序列化我创建的类型(Packet),它将包含数据作为字符串或char *
以下是发生的事情:
首先,我从服务器上的示例文本文件中获取1kb的数据。我得到了这个并将其放入我创建的Packet类型中。我已经在Packet中定义了数据字段以将此数据保存为std :: string。 (我尝试了char *但它没有奏效 - 见下一段)。
其次我使用boost text_oarchive对其进行序列化。如果它只包含一个字符串,那么序列化Packet类型没有问题,但我真正想要的是一种序列化它的方法,数据类型是一个char数组(这样它可以更好地使用下面的套接字)
第三,我通过一个提升asio socket发送它。这里我有一个问题,因为我找不到通过套接字连接发送std :: string的方法。我在示例和文档中看到的所有内容都需要使用某种类型的char *而不是字符串的缓冲区。
它只是一个令人头痛的问题。你能帮忙吗?