cmldy
驱动牛犊
驱动牛犊
  • 注册日期2004-12-14
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1700回复:9

超弱智问题:PEtherHeader在哪里定义的啊?

楼主#
更多 发布于:2004-12-14 21:53
如题,看到很多帖子里都有
PEtherHeader
PIPHeader
哪里有头文件啊?
frog_huang
驱动牛犊
驱动牛犊
  • 注册日期2002-06-05
  • 最后登录2008-05-02
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-15 09:12
PEtherHeader是指向Ether头的指针
PIPHeader是指向IP头的指针,你完全可以安装协议要求自己定义。
cmldy
驱动牛犊
驱动牛犊
  • 注册日期2004-12-14
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-15 09:33
谢谢您的回答,有这样的头文件吗?
在哪里可以找到?
frog_huang
驱动牛犊
驱动牛犊
  • 注册日期2002-06-05
  • 最后登录2008-05-02
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-15 10:17
//=============================================================================
//  802.3 and ETHERNET MAC structure.
//=============================================================================

typedef struct _ETHERNET
{
    BYTE    DstAddr[MAX_ADDR_LENGTH];   //... destination address.
    BYTE    SrcAddr[MAX_ADDR_LENGTH];   //... source address.
    union
    {
        WORD    Length;                 //... 802.3 length field.
        WORD    Type;                   //... Ethernet type field.
    };
    BYTE    Info[0];                    //... information field.
} ETHERNET;

typedef ETHERNET *LPETHERNET;

typedef ETHERNET UNALIGNED *ULPETHERNET;

#define ETHERNET_SIZE   sizeof(ETHERNET)

#define ETHERNET_HEADER_LENGTH  14
frog_huang
驱动牛犊
驱动牛犊
  • 注册日期2002-06-05
  • 最后登录2008-05-02
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-15 10:21
#ifndef __brloader_protocol_h
#define __brloader_protocol_h

typedef BYTE ETHERNET_ADDRESS [6];

typedef struct ETHERNET_FRAME {
ETHERNET_ADDRESS Destination;
ETHERNET_ADDRESS Source;
WORD FrameType; // in host-order
} ETHERNET_FRAME;

#define ETHERNET_FRAME_TYPE_IP 0x0800

typedef struct IP_HEADER {
    BYTE    x;
    BYTE    tos;
    WORD    length;
    WORD    identifier;
#define IP_MF 0x2000
    WORD    fragment;
    BYTE    ttl;
    BYTE    protocol;
    WORD    cksum;
    DWORD   src;
    DWORD   dest;
} IP_HEADER;
typedef IP_HEADER * LPIPHEADER;

#define IP_HEADER_MINIMUM_LEN 20

typedef struct UDP_HEADER {
WORD src_port;
WORD dest_port;
WORD length; // including this header
WORD checksum;
} UDP_HEADER;

#define UDP_HEADER_LEN 8

#endif // __brloader__protocol_h
cmldy
驱动牛犊
驱动牛犊
  • 注册日期2004-12-14
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-15 10:51
谢谢,加分,能给发一个完整的.h头文件吗?
cmldy@163.com  cmldy@sina.com
谢谢啦。
frog_huang
驱动牛犊
驱动牛犊
  • 注册日期2002-06-05
  • 最后登录2008-05-02
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-15 12:16
上面的内容就是protocol.h文件的内容,装个VC,找一下protocol.h即可!
cmldy
驱动牛犊
驱动牛犊
  • 注册日期2004-12-14
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-15 14:47
为什么我把protocal.h include进去之后,build出来一对错误啊?
frog_huang
驱动牛犊
驱动牛犊
  • 注册日期2002-06-05
  • 最后登录2008-05-02
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-16 09:13
应该是BYTE、WORD、DWORD没有定义的原因,自己加入:
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
试试看,另外,要注意一下字节对齐问题。
cmldy
驱动牛犊
驱动牛犊
  • 注册日期2004-12-14
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-16 10:45
谢谢,已经解决了
游客

返回顶部