Дух Повышения может использоваться для парсинга данных потока байтов?

Согласно этому примеру:

https://github.com/dustin/go-coap/blob/master/example/server/coap_server.go

[114 ] похоже, что обработчик go-coap связан только с URI. Я думаю, вам придется самостоятельно обрабатывать запросы разных типов.

Запрос с нераспознанным или неподдерживаемым кодом метода ДОЛЖЕН сгенерировать ответ 4.05 (метод не разрешен). blockquote>

From: CoAP RFC 7252 Раздел 5.8 Определения методов

К сожалению, я не научился идти и никогда не использовал go-coap, поэтому не могу показать фрагмент. Хотя я думаю, что это будет довольно легко: вам просто нужно ответить NON-4.05 с тем же MID и токеном.

8
задан Piotr Dobrogost 11 July 2009 в 19:39
поделиться

2 ответа

Дух повышения позволяет, чтобы синтаксический анализатор был определен с помощью синтаксиса Расширенной формы Бэкуса-Наура (EBNF) с шаблонным метапрограммированием. Это очень гибко и использует абстрактные классы во всех фазах процесса парсинга, который может быть настроен. Для обработки потока двоичных данных необходимо было бы реализовать пользовательские классы сканера, так как типы по умолчанию адаптируются для ввода текста. Можно читать далее в разделе Scanner и Parsing Руководства пользователя Духа.

По моему скромному мнению потоки двоичных данных лучше всего обрабатываются со скрученным вручную кодом сериализации. Дух приспособлен больше к хорошо сформированным грамматикам как разметка или языки сценариев. Например, Полный синтаксис Lua обеспечивается в EBNF. Так, могло бы иметь смысл использовать Дух для создания пользовательского синтаксического анализатора. С другой стороны, собственная ссылка последовательных данных с байтами синхронизации и сообщения заключения в скобки CRC потребовали бы намного большего количества работы только для определения EBNF, если контекстно-свободная грамматика даже существует для него.

Приложение

Последняя версия Духа Повышения включает функциональность для контакта с двоичными данными.

12
ответ дан 5 December 2019 в 08:01
поделиться

Только что выпущенный Spirit2 имеет средства для синтаксического анализа двоичного файла. Посмотрите это .

9
ответ дан 5 December 2019 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: