Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用boost序列化通过boost asio套接字连接发送序列化类型_C++_Sockets_Serialization_Boost_Boost Asio - Fatal编程技术网

C++ 使用boost序列化通过boost asio套接字连接发送序列化类型

C++ 使用boost序列化通过boost asio套接字连接发送序列化类型,c++,sockets,serialization,boost,boost-asio,C++,Sockets,Serialization,Boost,Boost Asio,我试图将1kb的数据从服务器发送到客户机,但我就是无法正确获取。 在这方面,我需要做几件事: 1需要使用boost asio插槽传输数据 2需要序列化I创建的类型数据包,该数据包将以字符串或字符形式包含数据* 下面是正在发生的事情: 首先,我从服务器上的一个示例文本文件中获取1kb的数据。我得到它并将其放入我创建的包类型中。我已经在数据包中定义了数据字段,将此数据保存为std::string。我试过char*但效果不好-见下一段 其次,我使用boosttext\uoarchive将其序列化。如果

我试图将1kb的数据从服务器发送到客户机,但我就是无法正确获取。 在这方面,我需要做几件事: 1需要使用boost asio插槽传输数据 2需要序列化I创建的类型数据包,该数据包将以字符串或字符形式包含数据*

下面是正在发生的事情:

首先,我从服务器上的一个示例文本文件中获取1kb的数据。我得到它并将其放入我创建的包类型中。我已经在数据包中定义了数据字段,将此数据保存为std::string。我试过char*但效果不好-见下一段

其次,我使用boosttext\uoarchive将其序列化。如果数据包类型只包含一个字符串,那么序列化该数据包类型没有问题,但是我真正想要的是一种将数据类型序列化为char数组的方法,以便更好地使用下面的套接字

第三,我通过升压asio插座发送。这里有一个问题,因为我找不到通过套接字连接发送std::string的方法。我在文档中看到的所有示例都需要使用某种类型的char*而不是字符串的缓冲区

只是头痛。你能帮忙吗

我在文档中看到的所有示例都需要缓冲区 使用某种类型的char*而不是字符串

这是正确的,尽管使用Boost.Serialization和Boost.Asio非常简单。您可以使用文本链接将其序列化为boost::asio::streambuf,然后使用套接字发送生成的流缓冲区内容


请参阅此问题和该问题,以获得更完整的示例。

如果没有代码,则无法回答,请编辑您的问题,以包含您迄今为止完成的代码。