gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:53 25 4
gpt4 key购买 nike

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

最佳答案

指针是指向本地运行程序*中内存位置的地址。发送给另一个程序是没有用的,发送到另一台机器上运行的程序更没用,如果另一台机器的体系结构不同就更没用了。

在您的上下文中使用序列化意味着发送指针指向的内容而不是发送无意义指针本身。

要实现跨架构的数据发送,更简单的方法是使用文本进行数据传输。大多数(如果不是全部)广泛使用的跨架构协议(protocol)都使用文本:HTTP、IMAP、IRC ...

*:我使用program而不是process

关于c++ - 在不同平台上通过管道传输数据的最佳和安全方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com