问题描述
Java 程序将收到类似“0x040x060x112233445566”的信息,考虑指定的 TLV 指示:
-
0x04 是标签表示值的类型(例如温度传感器、速度等)
-
0x06 是以字节为单位的值的长度(本例中为 6 个字节)
-
0x112233445566 是值(例如温度、速度、电池等)
这样的数据会继续进入我的套接字的输入流(每 x 毫秒),如何读取这样的 TLV 数据?我尝试使用 BufferedReader 的 readLine() 将其作为字符串读取,但是然后处理该数据(分隔(需要分隔符)每个十六进制值并将其转换为十进制值(用于验证目的))有点混乱,有没有更好的从输入流中读取这种 TLV 数据的方法。
注意:
-
0X前缀不会出现在实际数据中,我这里只是用它来区分十六进制字段
-
实际数据将包含多个 TLV 元素。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)