在不同平台上通过管道传输数据的最佳和安全方式

Hok*_*ama 6 c c++ networking pipe named-pipes

目前我正面临一个问题,我将缓冲区对象从x64 arch传递到x86 arch.该对象还包含一些指针值,在x64中为8个字节,x86上的相同指针大小为4个字节.现在,当我通过管道传输对象时,它的大小比x86平台对同一对象所期望的要多一些(因为这里的指针大小较小).我可以从这个论坛中的类似帖子中了解到我可能需要使用序列化,但我不知道我以前从未使用过序列化.序列化会解决这个问题吗?我正在使用C++与GCC编译器.我希望该产品适用于所有拱门(ia64,x64或x86).

BЈо*_*вић 2

boost 序列化专门设计用于:

在这里,我们使用术语“序列化”来表示将任意一组 C++ 数据结构可逆解构为字节序列。这样的系统可用于在另一个程序上下文中重建等效结构。根据上下文,这可能会使用实现对象持久性、远程参数传递或其他设施。在这个系统中,我们使用术语“存档”来指代该字节流的特定呈现。这可以是二进制数据、文本数据、XML 或该库的用户创建的其他文件。

顺便说一下,使用 POD 结构,并确保使用特定类型的数据类型。为此,请使用预定义类型(例如,请查看此处