我最近开始使用 Python 的xdrlib模块。我很惊讶地看到它是你需要实例化的类,并且包含像Packer
and之类的方法。调用和实例方法在缓冲区中累积数据,直到您使用它。标准用法似乎是您为每个客户端创建一个 Packer 和一个 Unpacker 实例,但这不是线程安全的/Unpacker
reset
get_buffer
Packer
Unpacker
我说我很惊讶,因为我期望只有函数将数据打包成字节,然后编写如下内容:
mybuffer += pack_int(3)
或者有一个 Message 类(一个带有类似方法的缓冲区append_int
)并在使用后处理 Message 实例。
当前的设计似乎把持久性放在了错误的地方。真的是这样,还是我缺少一些重要的功能?这种设计的基本原理是什么?