序列化/反序列化二进制数据

时间:2015-12-27 18:14:38

标签: lazarus freepascal

我正在编写一个基于套接字的应用程序,我需要在各种数据类型(如字符串,整数,对象(字符串的键值对和其他数据)中序列化和反序列化数据类型)具有预定义的长度。如果你是我,你将如何实现它?

我知道我没有提供任何代码,因为我想不出一个合适的方法来实现我想做的事情

希望你们能给我一些建议。

数据的格式如下

$ 1是布尔标记,其中下一个字节表示其是真还是假

$ 2是一个字符串标记,后跟16位整数,这是字符串的长度

$ 3是一个对象标记=数据存储在键值对中,其中键始终是一个字符串,值可以是字符串,布尔值等。对象类型以$ 0 $ 0 $ 9结尾

1 个答案:

答案 0 :(得分:0)

创建为所有数据声明属性的类,并实现从套接字读取并填充对象的转换器。根据数据的复杂程度,实施interpreter可能会有所帮助。