Построение пакета DHCP (DHCPDISCOVER), структура пакета - PullRequest
1 голос
/ 07 февраля 2012

Я пытаюсь собрать DHCP-пакет, а затем отправить его через UDP («0xff.0xff.0xff.0xff», 67 порт).

Я успешно подключился к своему DHCP-серверу, но у меня проблемы с первой структурой пакета (DHCPDISCOVER), как я вижу, но я построил ее из RFC && Wiki и проверил все поля / размер в байтах этих полей.

Вот код на C # (не спорьте, этот код предназначен только для тестирования, чтобы проверить работу протокола DHCP и структуры пакета): http://pastebin.com/9NXuHyrw

Я инициализировал тело пакета dhcp для обнаружения в классе, и вы можете проверить его структуру (размер, правильные поля).

Итак, что не так?

Спасибо, С наилучшими пожеланиями

1 Ответ

1 голос
/ 07 февраля 2012

Использование BinaryFormatter не даст вам того, что вы ожидаете.Он создаст последовательность байтов в неопределенном формате.Единственная гарантия, которую вы имеете об этой последовательности байтов, состоит в том, что вы можете десериализовать ее в объект, который похож на оригинал.Весьма вероятно, что совсем не выглядит как пакет DHCP.

Чтобы получить массив байтов с правильной структурой пакета, вам придется использовать BinaryWriter над MemoryStream и запишите каждое поле вручную.

...