如何设计一个简单的解析可靠的基于文本的协议

时间:2012-11-09 08:02:57

标签: protocols communication data-transfer

我需要在两个设备之间设计基于文本的协议,其中至少一个设备不是PC。 所以我不能依赖库,正则表达式和其他花哨的工具。 这些语言通常只提供BASIC(if,loops,toString,fromString,固定大小的字符串)可以提供的内容。

消息通过TCP / IP传输。文本编码是ASCII。

协议应允许随时发送消息(一个合作伙伴可以连续发送5条消息)。

到目前为止我想出的问题:

  1. 我需要一种方法将字符流分成几条消息。
  2. 由于邮件中的某些字段长度不一,我需要一种方法将邮件拆分为字段。
  3. 我需要支持几种消息类型,我想通过发送消息类型字段作为每条消息中的第一个字段来解决这些消息类型。
  4. 我的计划到目前为止:

    • 引入一个类似'\ 0'的消息分隔符来处理1。
    • 引入一个像'\ t'这样的字段分隔符来处理2。
    • 将协议类型作为文本或整数发送为第一个字段。

    样品:

    42\t123.456\tsome string\t4\042\t12.456\tsome other string\t5\0
    

    应解释为:

    [42 , 123.456 , "some string" , 4], [42 , 12.456 , "some other string" , 5]
    

    我看到的问题:

    • 如何处理“转义”分隔符,即包含'\ t'或'\ 0'的字符串? 禁止分隔符(可能选择128 +字符中的一些)?

    您如何看待此协议?有好的选择吗?请记住,编程设施非常有限!

0 个答案:

没有答案