我正在编写一个侦听传入 UDP 数据包的应用程序。有可能接收到许多不同类型的数据包。例如,数据包可以这样定义,
套餐一:| 诠释一个 | 字符 b | 诠释 c |
套餐 B:| 短整数 d | 情报 | 字符 f |
等等。
我的问题是,鉴于我收到多种类型的消息,有什么好方法可以协调发送的内容与我正在阅读的内容?
如我所见,可以在每条消息的开头添加一个“标头”,定义其类型,或者如果我知道每个数据包的大小,我可以读取消息长度并将其与我列出的内容进行比较。
另外,如果后者是一个选项,是否每次都保证数据包是预期的长度?
编辑:
我还可以看到仅使用数据包长度可能会出现问题的地方,因为可能有多个相同长度的消息类型。