我有一个如下所示的数据结构:
typedef struct
{
unsigned short m_short1;
unsigned short m_short2;
unsigned char m_character;
} MyDataType;
我想使用 boost::serialization 序列化此数据结构,然后使用 boost::asio 通过 TCP/IP 传输它,然后让另一个应用程序接收数据并使用相同的 boost 库对其进行反序列化。
我正在尝试遵循 boost::serialization 教程 http://www.boost.org/doc/libs/1_38_0/libs/serialization/doc/tutorial.html, (正如其他一些问题所建议的那样 http://stackoverflow.com/questions/523872/how-do-you-serialize-an-object-in-c)但该示例专门用于写入/读取文件,而不是使用 boost::asio 写入/读取套接字。
我非常确定我已经拥有适合这项工作的工具——我只需要帮助让它们协同工作。写入套接字与写入文件没有什么不同,对吧?
非常感谢任何建议。谢谢!
有一个很好的序列化example http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html在 asio 文档中:服务器.cpp http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/serialization/server.cpp, 库存.hpp http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/serialization/stock.hpp, 连接.hpp https://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/serialization/connection.hpp.
这是一个片段:
std::ostringstream archive_stream;
boost::archive::text_oarchive archive(archive_stream);
archive << your_struct;
outbound_data_ = archive_stream.str();
boost::asio::async_write(socket_,
boost::asio::buffer(outbound_data_), handler);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)