如何在C中序列化数据

时间:2010-07-02 20:17:26

标签: c serialization

我在c中编写服务器 - 客户端应用程序,需要来回发送一些结构。

如何以独立于平台的方式对数据进行序列化?

1 个答案:

答案 0 :(得分:3)

如果您需要担心不同版本的服务器和客户端之间的兼容性,我会使用Google协议缓冲区或JSON(现有实现,或自己编写)。如果版本始终保持同步,只需编写自己的二进制序列化,或者甚至将内存结构定制为“序列化”形式,并使用访问函数来读取和写入。这基本上需要以固定字节顺序将数字存储为固定数量的字节,或者如果你想获得花哨的某种vlc格式,并使用某种类型的对象句柄(最简单的是数组的偏移量)代替显式指针当一个物体需要引用另一个物体时。

在内部以“序列化”形式保存数据的一个非常好的好处是,您可以在磁盘上处理大量数据集(例如通过mmap),而无需编写自己的复杂缓存代码。 / p>