使用boost序列化将C++中的对象序列化为二进制格式以便在套接字上使用是否安全?

gct*_*gct 7 c++ networking serialization boost tcp

我知道你可以使用boost序列化来序列化为文本格式,然后推送套接字,但我想将一类统计数据序列化为二进制格式(包括大小和编码/解码开销).为此使用boost序列化是否安全?

我特别担心的是:

  1. 不同平台上的整数类型大小之间的差异(主要是32位与64位).
    虽然我可以通过使用来自stdint的精确大小的整数来解决这个问题,但我仍然希望了解这种行为.
  2. 系统之间的字节序差异确实会提升序列化为标准字节序(例如:网络排序),然后使用主机的字节顺序进行反序列化?

这是一个非常好的库,但遗憾的是它的二进制功能的文档有些限制,所以我只想确保以这种方式使用它是安全的.

rlb*_*ond 5

不,通常,boost 二进制序列化与计算机无关。看这里

  • 我写了boost * binary *序列化与机器无关。请重读我的答案。 (2认同)

Han*_*ant 5

这是可用的,我听过很多关于谷歌的protobuf.它具有C和C++绑定.