+ -

ARP 数据结构

使用C/C++语言,我们可以定义ARP的数据结构如下:

#pragma pack(1)

//以太网头
#define ETH_ALEN    (6)
typedef struct _ETH_HEADER
{
    unsigned char       DstAddr[ETH_ALEN];
    unsigned char       SrcAddr[ETH_ALEN];
    unsigned short      EthType;
} ETH_HEADER, *PETH_HEADER;

typedef struct _ARP_HDR
{
    ETH_HEADER;//根据实际使用习惯可选择注释掉
    unsigned short hwtype;
    unsigned short protype;
    unsigned char hwsize;
    unsigned char prosize;
    unsigned short opcode;
}ARP_HDR, *PARP_HDR;

#pragma pack()

这里的#pragma pack(1)强制结构体进行一字节对齐,结构体定义完毕后,使用#pragma pack()恢复默认字节对齐。

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!