декодирование двоичных данных, когда структуры содержат строки - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь проанализировать двоичный протокол, используя golang. Я использую функцию чтения кодировки / бинарной библиотеки, чтобы отобразить данные в структуру

Моя структура выглядит так

type getSessionsResponseIPDR struct {
    RequestID     uint16
    VendorID      string
    Name          string
}

Однако этоне выглядит как двоичная. Функция чтения не обрабатывает строки, заканчивающиеся на '\ 0'

Есть ли другой способ прочитать этот объект

1 Ответ

1 голос
/ 06 ноября 2019

Кажется, что это невозможно с encoding/binary, так как он поддерживает только объекты фиксированного размера. Это означает, что строки вообще не поддерживаются.

Если у вас нет контроля над отправляющей стороной, вы должны реализовать это «вручную», как при чтении из соединения и правильной интерпретации прочитанных байтов.

Если у вас есть контроль над отправляющей стороной, вы можете использовать что-то вроде encoding/gob или encoding/json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...