这可能是在黑暗中拍摄的:我们有一个设计和流量的线包格式。是否有一种灵活的方法来指定和解析传入流而不是对其进行编码?优选语言不可知......但不一定如此。如果有充分的理由不这样做,请也赐教。
由于
奥利弗
答案 0 :(得分:4)
有一个名为Construct的精彩Python库。这是迄今为止最快速入门的最简单方法。
如果与语言无关是更重要的,您可以将有线协议限制为ASN.1 BER,因为通常可以使用任何语言为这些协议库找到编码器/解码器库。例如,Java中有CoDec,Python中有PyASN1。警告:虽然功能强大,但ASN充满了逐个委员会的标准,并且很难开始使用它。 This site will help.
还有更新,更轻的类似ASN.1的方法,如Apache Thrift和Google Protocol Buffers。
答案 1 :(得分:1)
Google Protocol Buffers允许您指定要发送的内容,然后为您生成解析和序列化代码。
Thrift类似,但也提供了IPC框架。它将解析和套接字集成到一个包中。
我没有太多使用这些库,但它们都有很好的文档记录,语言无关,并且是在许可证下发布的 - 我相信其中至少有一个适合您的应用程序。
答案 2 :(得分:1)
Erlang和Haskell都具有出色的二进制模式匹配。但是出于您的目的(假设您在JVM上),为什么不write the connector in Scala?