我已经阅读了Beej指南以及我在互联网上找到的许多其他资源,但我感觉在序列化和反序列化方面缺少了一些东西。我可以通过硬编码为服务器和客户端发送/接收定义结构来解决问题,但我想知道是否有任何资源可以帮助我更有效地序列化或者通用一点,这将帮助我在其他程序中重复使用一些序列化代码,而不是为每个要传递的数据结构编写定制的序列化函数。
我已经阅读了Beej指南以及我在互联网上找到的许多其他资源,但我感觉在序列化和反序列化方面缺少了一些东西。我可以通过硬编码为服务器和客户端发送/接收定义结构来解决问题,但我想知道是否有任何资源可以帮助我更有效地序列化或者通用一点,这将帮助我在其他程序中重复使用一些序列化代码,而不是为每个要传递的数据结构编写定制的序列化函数。
Google Protobuf可能对您有用,特别是如果您想考虑在多种编程语言中实现跨平台应用程序。
Protobuf已经实现了序列化,因此您可以使用它。
由于上面的链接是针对c ++的,this是c的替代品。 但是也有许多其他语言的实现,如Python、PHP、Java等! 另一个C Protobuf库是nanoPB,感谢πάντα ῥεῖ指出这一点。它似乎很稳定。
另一种方法是使用另一个序列化库来对数据进行序列化和反序列化。
最后一种可能的方法是自己实现序列化,就像在这个SO问题中描述的那样。