我被赋予了一项艰巨的任务,将一些来自源的传入 UDP 数据包解析为适当的 Java 表示。踢球者是数据包中保存的数据不是字节对齐的。为了使协议尽可能紧凑,有许多位字段指示数据字段的存在或不存在。
例如,在位索引 34 处,您可能会发现应转换为浮点数的 24 位字段。位索引110可以是指示接下来的3个字段分别是包含一天中的小时、分钟和秒的5位和6位值的标志。(这些只是由我编造的,但代表了规范所说的内容)。这些数据包可能有几百位长。
规范不太可能改变,但完全有可能要求我解码其他类似的数据包格式。
我当然可以根据需要进行位移和掩码,但我担心最终会陷入位移地狱,然后在发现更多数据包格式时淹没其中。
我很想听听关于最佳实践或 Java 库的任何建议,这些建议可能会使任务更易于管理。