Tcp 记分板ASCII数据-读取

Tcp 记分板ASCII数据-读取,tcp,ascii,Tcp,Ascii,作为一个总的noob,我想了解我们的场地记分牌给我们带来了什么 这是一些捕获的数据: \01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036 \01\7f\02G11\8271947 00 001\036\01\7f\02G127\80\80\03-\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G11\8271947 00 0

作为一个总的noob,我想了解我们的场地记分牌给我们带来了什么

这是一些捕获的数据: \01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036 \01\7f\02G11\8271947 00 001\036\01\7f\02G127\80\80\03-\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G11\8271947 00 001\036\01\7f\02G127\80\80\03-\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036 \01\7f\02G11\8271947 00 001\036\01\7f\02G127\80\80\03-\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G11\8271947 00 001\036\01\7f\02G127\80\80\03-\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G127\81200\80\03>\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+ \01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036 \01\7f\02G11\8271947 00 001\036\01\7f\02G127\81200\80\03>\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G127\81200\80\03>\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+ \01\7f\02G11\8271947 00 001\036\01\7f\02G127\81200\80\03>\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G11\8271947 00 001\036\01\7f\02G127\81200\80\03>\01\7f\02G137\80\80\03\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G127\81200\80\03>\01\7f\02G137\c0500\80\03Y\01\7f\02G147\80\80\03+ \01\7f\02G127\81200\80\03>\01\7f\02G137\c0500\80\03Y\01\7f\02G147\80\80\03+ \01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036\01\7f\02G11\8271947 00 001\036 \01\7f\02G11\8271947 00 001\036\01\7f\02G127\81200\80\03>\01\7f\02G137\c0500\80\03Y\01\7f\02G147\80\80\03+\01\7f\02G16700\03) \01\7f\02G127\81200\80200\03\01\7f\02G137\c0500\80\03Y\01\7f\02G147\80\80\03+ \01\7f\02G11\8071946 00 001\035\01\7f\02G11\8071946 00 001\035\01\7f\02G137\c0500\80\03Y\01\7f\02G11\8071946 00 001\035 \01\7f\02G11\8071946 00 001\035\01\7f\02G127\81200\80200\03\01\7f\02G11\8071946 00 001\035\01\7f\02G11\8071946 00 001\035

你能告诉我正确的方向吗?如何使用这些捕获的数据来解析时间和分数?这种发送数据的格式叫什么?我只是找不到正确的线索,谷歌的一些教程,指南,信息


这是一种老式的固定字段消息格式。而且它不是完全可打印的ASCII码,甚至也不是ASCII码,因为它包含的字节值大于127个十进制数。所以我称之为二进制固定字段格式。不可打印或非ASCII字节由反斜杠和两个十六进制数字“转义”,例如“\82”是8*16+2或130十进制

显然,您对曲棍球比赛的时钟时间和分数感兴趣,它由消息类型11携带。您捕获的数据中似乎包含其他类型的消息,包括长度不同的类型12、13、14、15和17。您需要所有其他格式的文档来解码此流,因为消息流中似乎没有包含消息长度

由于捕获中的消息前面有“\01\7f\02G”,因此似乎还有一个更高级别的协议,我不指望它保持不变,因为它必须包含一些相关信息,例如消息适用的匹配项。通过突出显示此序言,您可以更好地查看消息:

似乎每条消息后面都有“\03”加上一个ASCII字符,该字符的变化没有明显的原因

流中的第一条消息是类型11,由以下15个字节组成:“11\8271947 00 001”。如果使用此消息类型的文档,则可以按如下方式对其进行解码:

  • 前两个字节为“11”,表示消息类型为11
  • 字节3中的状态字为“\82”,设置了位7和位1,表示游戏时钟已关闭
  • 字节4是“7”,表示这是一项冰球比赛
  • 字节5-8表示游戏时钟为19:47。请注意,当游戏时钟小于一分钟时,它以不同的格式给出,包括十分之一秒
  • 字节9-11给出了0的主分数
  • 字节12-14表示来宾分数为0
  • 字节15表示周期为1
捕获中的最后一条消息11是“11\8071946 00 001”。游戏时钟现在开启,数值为19:46