Разбор буферов протокола Google без дейтаграммы.прото файл?

можно ли анализировать входящую датаграмму буферов протокола google без каких-либо .прото файл? Я просто теперь его сериализовал с помощью буферов протокола, но понятия не имею о файле IDL.

Я ищу способ просто перебирать любое значение с помощью какого-то отражения? Возможно ли это?

спасибо!

1 ответов


protoc --decode_raw < my_file

при проверке вывода необходимо учитывать следующее:

  • ни одно из имен полей не отображается, только номера тегов.
  • все varint-поля отображаются в виде целых чисел. Это нормально для большинства типов, но sint* появится в формате" zigzagged".
  • двойники и поплавки будут показаны как hex.
  • байт, строковые поля и submessages всем выглядеть одинаково, т. е. просто куча байты.

Если вы хотите декодировать сообщения программно, вы можете написать свой собственный .файл proto после того, как вы выяснили, что означают поля, используя вышеуказанный метод.