1

我在 Windows 中有两个正在运行的进程,每个进程都有一个到另一个进程的管道。

我想序列化一个复杂的类并将其从一个进程传输到另一个进程。我已经制定了序列化程序,并且我知道管道正在发送二进制流。我应该如何发送我的序列化数据?我正在使用 WinAPI 和 C++。

我应该开发自定义协议吗?如果是这样,它应该是这个特定类的通用还是唯一的?发送序列化类时可以保留虚拟表吗?

在这种情况下是否有常用的模型或设计模式?一些示例代码将不胜感激。谢谢!

4

4 回答 4

2

您可能想查看协议缓冲区

于 2008-12-07T19:42:55.950 回答
2

这里是教程boost::serialization。我可以想象它可以很好地通过管道发送数据并在另一端反序列化:http: //www.boost.org/doc/libs/1_37_0/libs/serialization/doc/tutorial.html

于 2008-12-07T20:05:18.633 回答
1

您可以使用 boost::asio::windows::stream_handle 像 io 一样组织 iostream,并异步执行。

于 2008-12-07T19:56:07.293 回答
1

您不必担心 vtables,因为 boost serialize 会担心类型。您唯一需要做的就是确保任何类型都是序列化的,然后在反序列化时使用另一端的EXACT SAME TYPE

于 2008-12-07T22:01:14.030 回答