1

我正在尝试构建 DHCP 数据包,然后通过 UDP(“0xff.0xff.0xff.0xff”,67 端口)发送它。

我已成功连接到我的 DHCP 服务器,但我看到第一个数据包结构( DHCPDISCOVER )有问题,但我是从 RFC && Wiki 构建的,并检查了这些字段的所有字段/大小(以字节为单位)。

这是C#中的代码(不要争论,此代码仅用于测试目的,以检查DHCP协议的工作和数据包的结构): http: //pastebin.com/9NXuHyrw

我已经在课堂上初始化了 discover dhcp-packet 的主体,您可以检查它的结构(大小,正确的字段)。

那么,怎么了?

谢谢,最好的问候

4

1 回答 1

1

使用 aBinaryFormatter不会给你你所期望的。它将产生一个未指定格式的字节序列。您对该字节序列的唯一保证是您可以将其反序列化为类似于原始对象的对象。它很可能看起来一点也不像DHCP 数据包。

要获得具有正确数据包结构的字节数组,您必须使用 a BinaryWriterover aMemoryStream并手动写入每个字段。

于 2012-02-07T10:18:07.693 回答