关于ARP结构体的定义
2009-06-15 14:03
302 查看
今天用winpcap截取ARP包,结果ARP输出的IP地址和MAC地址格式,总是出现问题
ARP的结构体定义如下:
利用printf("%d/n",sizeof(struct ARP));
发现输出结构体的大小为32,而不是28,所以输出MAC地址和IP地址的时候出现了错误
上网查了很多,最后用强制结构体紧凑分配空间
在程序开始处,添加
#pragma pack(1)
再输出ARP结构的大小为28,再输出ARP的MAC和IP,结果显示正确了!
ARP的结构体定义如下:
struct ARP { unsigned short htype; unsigned short ptype; unsigned char hlen; unsigned char plen; unsigned short oper; unsigned char destMac[6]; unsigned long spa; unsigned char sourceMac[6]; unsigned long tpa; };
利用printf("%d/n",sizeof(struct ARP));
发现输出结构体的大小为32,而不是28,所以输出MAC地址和IP地址的时候出现了错误
上网查了很多,最后用强制结构体紧凑分配空间
在程序开始处,添加
#pragma pack(1)
再输出ARP结构的大小为28,再输出ARP的MAC和IP,结果显示正确了!
相关文章推荐
- 关于定义一个结构体可以被其他的源文件使用
- 关于在结构体末尾定义空数组的用法
- 关于结构体的定义与初始化
- 关于物体 '固有类别' 与 '实际使用类别' 分离的情况,结构体定义方法
- 关于结构体的定义和声明的几种方式
- 关于C语言中结构体定义的一个小问题
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- 关于全局结构体的定义和使用
- 2014.12.25学习数据记录关于结构体定义和status
- 关于结构体定义时初始化及结合数组使用问题 示例
- 关于结构体的操作符重载和定义在内部的函数
- LNK1179 关于结构体定义
- 关于c#结构体(struct)定义详解
- 关于Go语言,自己定义结构体标签的一个妙用.
- 关于C/C++数据结构中结构体的定义
- 关于结构体成员,在传参过程中,数值发生变化(估计是我定义的结构体有不对的地方)
- 关于C语言中定义结构体问题
- 结构体定义和初始化
- 关于show arp表,显示Incomplete问题
- 结构体指针的定义和引用