我知道您可以使用 boost 序列化来序列化为文本格式,然后通过套接字推送,但我想将一类统计数据序列化为二进制格式(出于大小和编码/解码开销的原因) ).为此使用 boost 序列化是否安全?
我特别担心的是:
- 不同平台上整数类型大小的差异(主要是 32 位与 64 位)。
虽然我可以通过使用来自 stdint 的精确大小的整数在很大程度上解决这个问题,但我仍然想了解这种行为。 - 系统之间的字节序差异,是否将 boost 序列化为标准字节序(例如:网络排序),然后使用主机的字节序进行反序列化?
这是一个非常好的库,但不幸的是,关于它的二进制功能的文档有些有限,所以我只想确保以这种方式使用它是安全的。
最佳答案
不,一般来说,boost binary 序列化不是机器无关的。参见 here .
关于c++ - 使用 boost 序列化将 C++ 中的对象序列化为二进制格式以便通过套接字使用是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304061/