题
我目前正在用c#构建DHCPMessage类。
RFC在此处可用: http://www.faqs.org/rfcs/rfc2131。html
伪 通用标签
如果我们想象每个字段都是一个固定长度的位数组,那是什么?
- 最实用的
- 最佳做法
将其表示为类的方式?
OR ..你怎么写的?:)
解决方案
与此相伴,您走错了路,这不是矢量。该消息以“八位位组”(又称为“字节”)定义。可与Marshal.PtrToStructure一起使用的等效C#声明为: 通用标签
您需要单独处理可变长度选项字段。
其他提示
对于初学者来说,您可以尝试 BitArray 类。无需在这里重新发明轮子。
如果您担心它占用过多的空间/内存,请不要。只需将其初始化为合适的大小即可: 通用标签
(以上内容将保留8位,并应占用1个字节)
您确定要对其中一些使用位数组吗?例如,您可以将byte用作8位,将int用作32位,并将字节数组用于映射到以空终止的字符串(例如'sname')的段。然后,您可以使用简单的按位运算符(&,|)来检查/操作这些位。
这里有一些关于将TCP标头转换为结构的文章,其中还介绍了字节序等。
http://taylorza.blogspot.com/2010/04/archive-structure-from-binary-data.html http://taylorza.blogspot.com/2010/04 / archive-binary-data-from-structure.html
这些文件已经很老了,我只是从旧博客迁移过来的,以免丢失。
不隶属于 StackOverflow