我一直在尝试在 haskell 中实现协议解析器,而且我对这种语言还很陌生,尤其是在 monad 方面。我一直在使用 binary-0.5.0.2 并描述了我的协议的标头和所有有效负载。我要解析的消息如下所示: header + (payload A, payload B, ..) 其中 header 中的一个字段指定消息的有效负载类型。
我已经成功解析了字节串中的第一条消息,但是对于如何读取下一条消息,丢弃在处理第一条消息时读取的字节感到茫然。
这可能相当模糊,但我宁愿在通用解析器上获得输入,也不愿让我丑陋的代码以这种方式工作。
谢谢您的帮助