Как анализировать сообщения STUN из массива байтов в .net

Я изучаю, что потребуется для создания STUN-сервера в .Net для проекта WebRTC.

Я настроил свой проект WebRTC с URL-адресом STUN локального хоста, и у меня есть Socket, прослушивающий тот же порт, чтобы попытаться посмотреть, как выглядят запросы STUN.

Я также пытаюсь перенаправить этот запрос на URL-адрес Google STUN, но он не работает, но сейчас это не актуально.

Поскольку я использую С# и .net, мне удается получить запрос STUN, а данные представляют собой массив байтов.

Но в спецификации STUN упоминается работа с битами для разных частей сообщения.

Как преобразовать байты в полученных данных в различные части STUN-сообщения?
I.E. Тип сообщения, класс сообщения, Magic Cookie, идентификатор транзакции и т. д.

Если я конвертирую его в BitArray, он просто содержит значения true/false.

И в спецификации STUN упоминаются такие вещи, как 0b00, 0b01, которые выглядят как шестнадцатеричные значения.

Или я упускаю что-то очевидное?


person Quintonn    schedule 17.03.2020    source источник
comment
Вы можете использовать предварительно скомпилированные двоичные файлы Windows для Stuntman, включая stunclient.exe для тестирования вашего сервера. Вы можете ссылаться на исходный код с GitHub и рассмотреть возможность переноса частей StunReader и StunBuilder на C# или использовать в качестве ссылки для разбора бинарного протокола STUN.   -  person selbie    schedule 18.03.2020


Ответы (1)


Для меня это не похоже на шестнадцатеричное значение (0xFF). Они выглядят как двоичные значения false (0b00) и true (0b01).

person Ivan Peric    schedule 17.03.2020
comment
Да, через некоторое время я понял, что они двоичные и как их анализировать. Теперь я могу анализировать и создавать сообщения STUN. Спасибо - person Quintonn; 18.03.2020