用于通过网络发送的安全C结构序列化?-C++

用于通过网络发送的安全C结构序列化?-C++,c++,networking,serialization,struct,C++,Networking,Serialization,Struct,有人会如何独立于CPU端性来序列化C风格的结构 我一直在寻找解决方案,但我希望找到一个更通用的解决方案,而不是改变结构中每个字段的字节顺序。在语言或公共系统库中,没有通用的解决方案 可能有脚本/工具可以为您自动生成读/写代码,或者有库可以为您的结构添加某种反射,但我没有您的参考资料 奖金信息应该在这个问题的任何好答案中:除了endianness,确保使用编译器指令将内存中的结构打包锁定为字节对齐,这对于网络数据包来说是正常的,而不是结构字段的自然对齐。在语言或公共系统库中没有解决此问题的通用方法

有人会如何独立于CPU端性来序列化C风格的结构


我一直在寻找解决方案,但我希望找到一个更通用的解决方案,而不是改变结构中每个字段的字节顺序。

在语言或公共系统库中,没有通用的解决方案

可能有脚本/工具可以为您自动生成读/写代码,或者有库可以为您的结构添加某种反射,但我没有您的参考资料


奖金信息应该在这个问题的任何好答案中:除了endianness,确保使用编译器指令将内存中的结构打包锁定为字节对齐,这对于网络数据包来说是正常的,而不是结构字段的自然对齐。

在语言或公共系统库中没有解决此问题的通用方法

可能有脚本/工具可以为您自动生成读/写代码,或者有库可以为您的结构添加某种反射,但我没有您的参考资料


这个问题的任何好答案中都应该包含的额外信息:除了endianness之外,请确保使用编译器指令将内存中的结构打包为字节对齐,这对于网络数据包来说是正常的,而不是结构字段的自然对齐。

如果需要二进制流,然后,您必须处理相关的问题,包括endianness。为了提供一个替代方案,您可以创建一个可读的/ASCII字段表示法——这可以避免许多陷阱,但通常更冗长,性能更低。无论哪种方式,在有大量结构/字段的情况下创建函数都有点麻烦。您可以考虑使用支持脚本生成代码,甚至可以从GCC-XML、OpenC++中删除元数据,如果C代码是合法的C++程序,或者类似的……/P>< P>如果您想要二进制流,那么您必须处理相关的问题,包括DeNANNISY。为了提供一个替代方案,您可以创建一个可读的/ASCII字段表示法——这可以避免许多陷阱,但通常更冗长,性能更低。无论哪种方式,在有大量结构/字段的情况下创建函数都有点麻烦。您可以考虑使用支持脚本生成代码,甚至可以从GCC-XML中打开元数据,如果C代码是合法的C++程序,也可以使用OPEN C++。