构建包含长度/大小的字节串?

时间:2017-01-31 19:04:08

标签: haskell serialization bytestring

这不是我第一次遇到这个问题,但我还没有找到一个非常好的解决方案,所以我想我会问别人如何处理它。

许多协议包括消息本身内的消息大小(或其一部分)。例如,现在我正在查看 ModbusTCP ,其中字节5和6应该保留消息剩余部分的长度。是否有一些优雅而优雅的方式来解决这个问题?

直接构建器看起来像这样(使用来自 grain Serialize):

put (ModTcpRequestFrame tid pid uid req)= do
  putWord16be tid
  putWord16be pid
  putWord16be len
  putWord8 uid
  put req

  where
    len = .... -- what to put here?

可以吗?

0 个答案:

没有答案