Привет! Попробовал реализовать передачу данных по протоколу ScoutOpen всё впринципе хорошо, но непонятно следующее:
Из приведенного вами примера описания протокола в базе знаний приводится пример передачи данных вот эта строка:
Цитата |
---|
05 33 30 31 31 32 db 00 00 00 00 4b 71 00 e7 bc cd 08 2b 98 0a 42 89 06 66 42 33 33 97 42 41 01 b2 d0 ac 00 12 00 05 00 ca 00 4a 32 34 30 31 30 34 30 30 30 30 30 32 32 33 30 31 30 34 30 30 30 30 30 30 36 37 30 31 30 34 30 30 30 30 30 33 30 30 30 31 30 34 30 30 30 30 30 32 30 30 30 31 30 34 30 30 30 30 30 30 30 30 30 31 30 34 30 30 30 30 30 30 38 42 |
Из данного набора байт интересует только передача данных Data, тоесть вот этот кусок
Цитата |
---|
4a 32 34 30 31 30 34 30 30 30 30 30 32 32 33 30 31 30 34 30 30 30 30 30 30 36 37 30 31 30 34 30 30 30 30 30 33 30 30 30 31 30 34 30 30 30 30 30 32 30 30 30 31 30 34 30 30 30 30 30 30 30 30 30 31 30 34 30 30 30 30 30 30 38 42 |
В описании так же говорится что первый байт длина поля Data тоесть получается 4a(hex)-->74(dec),
далее в описании говорится что остальное это hex-строка тоесть представляем байты в строковом виде это получается так
24 01 04 00000223 01 04 00000067 01 04 00000300 01 04 00000200 01 04 00000000 01 04 0000008B
Далее по описанию вопросов не возникло, но когда я пытаюсь принять данные самостоятельно получается что сервер мне передает слебующий hex набор данных (показано только поле Data):
Цитата |
---|
46 - длина = 70 (всё ок) 32 10 D0 83 25 00 68 00 00 00 40 D0 82 06 00 4F 03 00 00 D0 A0 D0 82 0B 00 04 00 00 00 D1 80 D0 8F 21 00 00 00 00 00 D0 B0 D0 82 03 00 E2 84 A2 6E 00 00 D1 80 D0 82 03 00 06 11 00 00 00 D0 83 13 00 00 00 00 00
|
С длиной данных всё хорошо байты соответствуют указанной длине, но когда я начинаю представлять HEX в виде строки (как сказано в описании), то получается какая то хрень
Цитата |
---|
2Ѓ%h@ЂOРЂрЏ!аЂ™nрЂЃ |
что нужно сделать чтоб данные представились в нормальном виде.
ЗЫ в некоторых случаях при анализе других пакетов, были замечены корректные данные как в примере.