• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            山寨:不是最好的,是最適合我們的!歡迎體驗(yàn)山寨 中文版MSDN

            Blog @ Blog

            當(dāng)華美的葉片落盡,生命的脈絡(luò)才歷歷可見(jiàn)。 -- 聶魯達(dá)

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            BBS

            Blog

            Web

            最新評(píng)論

            結(jié)構(gòu)體對(duì)齊問(wèn)題

             

            //定義的結(jié)構(gòu)體如下: 
            typedef struct arp_header
            //-----------------------DLC Header---------------------------------------- 
            unsigned char  DesMAC[6]; //目標(biāo)MAC 
            unsigned char  SrcMAC[6]; //源MAC             
            unsigned short EtherType; //EtherType默認(rèn)為0x0806是ARP幀的類型值 
            //-----------------------ARP Frame----------------------------------------- 
            unsigned short HW_Type; //硬件類型 
            unsigned short Prot_Type; //上層協(xié)議類型 
            unsigned char  HW_Addr_Len; //MAC地址長(zhǎng)度 
            unsigned char  Prot_Addr_Len; //IP地址類型 
            unsigned short Opcode; //操作碼  0x01表示ARP請(qǐng)求包 0x02表示RARP應(yīng)答包 

            unsigned 
            char  Send_MAC_Addr[6]; //發(fā)送方MAC 
            unsigned long  Send_IP_Addr; //發(fā)送方IP 
            unsigned char  Targ_MAC_Addr[6];//接收方MAC 
            unsigned long  arg_IP_Addr; //接受方IP 
            unsigned char  padding[18]; //填充數(shù)據(jù) 
            }
            ARPHEADER,*PARPHEADER; 

            填充: 
            m_ARPHdr 
            = new ARPHEADER; 
            //--------------------------------填充ARP頭-------------------------------- 
            m_ARPHdr->DesMAC[0= 0Xff
            m_ARPHdr
            ->DesMAC[1= 0Xff
            m_ARPHdr
            ->DesMAC[2= 0Xff
            m_ARPHdr
            ->DesMAC[3= 0Xff
            m_ARPHdr
            ->DesMAC[4= 0Xff
            m_ARPHdr
            ->DesMAC[5= 0Xff

            m_ARPHdr
            ->SrcMAC[0= 0X00
            m_ARPHdr
            ->SrcMAC[1= 0X08
            m_ARPHdr
            ->SrcMAC[2= 0X02
            m_ARPHdr
            ->SrcMAC[3= 0XDB
            m_ARPHdr
            ->SrcMAC[4= 0X3B
            m_ARPHdr
            ->SrcMAC[5= 0X95

            m_ARPHdr
            ->EtherType = 0X0608
            // m_ARPHdr-> 

            m_ARPHdr
            ->HW_Type =0X0100//硬件類型 
            m_ARPHdr->Prot_Type  = 0X0008//上層協(xié)議類型 
            m_ARPHdr->HW_Addr_Len = 0X06//MAC地址長(zhǎng)度 
            m_ARPHdr->Prot_Addr_Len =0X04//IP地址類型 
            m_ARPHdr->Opcode = 0X0100//操作碼  0x01表示ARP請(qǐng)求包 0x02表示RARP應(yīng)答包 

            // m_ARPHdr->Send_MAC_Addr[6]; //發(fā)送方MAC 
            m_ARPHdr->Send_MAC_Addr[0= 0X00
            m_ARPHdr
            ->Send_MAC_Addr[1= 0X08
            m_ARPHdr
            ->Send_MAC_Addr[2= 0X02
            m_ARPHdr
            ->Send_MAC_Addr[3= 0XDB
            m_ARPHdr
            ->Send_MAC_Addr[4= 0X3B
            m_ARPHdr
            ->Send_MAC_Addr[5= 0X95
            m_ARPHdr
            ->Send_IP_Addr =  inet_addr("192.168.11.162"); //發(fā)送方IP 
            // m_ARPHdr->Targ_MAC_Addr[6];//接收方MAC 
            m_ARPHdr->Targ_MAC_Addr[0= 0X00
            m_ARPHdr
            ->Targ_MAC_Addr[1= 0X00
            m_ARPHdr
            ->Targ_MAC_Addr[2= 0X00
            m_ARPHdr
            ->Targ_MAC_Addr[3= 0X00
            m_ARPHdr
            ->Targ_MAC_Addr[4= 0X00
            m_ARPHdr
            ->Targ_MAC_Addr[5= 0X00
            m_ARPHdr
            ->arg_IP_Addr = inet_addr("192.168.11.154"); //接受方IP 
            //m_ARPHdr->padding[18] ; //填充數(shù)據(jù) 
            memset(&(m_ARPHdr->padding[0]),0,18); 

            //填充后m_ARPHdr 值如下: 
            //FF FF FF FF FF FF 00 08 02 DB 3B 95 08 06 00 01 08 00 06 04 00 01 00 08 02 DB 3B 95 C0 A8 0B A2 00 00 00 00 00 00 C0 A8 0B 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
            //轉(zhuǎn)換: 
            u_char* packet = (u_char*)m_ARPHdr; 
            //轉(zhuǎn)換后packet等于 
            //FF FF FF FF FF FF 00 08 02 DB 3B 95 08 06 00 01 08 00 06 04 00 01 00 08 02 DB 3B 95 C0 A8 0B A2 00 00 00 00 00 00 CD CD C0 A8 0B 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  

            //而且還有一個(gè)問(wèn)題: 
            int n = sizeof(ARPHEADER); 
            //等于64;而不是60 

             為什么C0 A8 0B 02前怎么不是CD CD

            posted on 2008-05-25 21:50 isabc 閱讀(610) 評(píng)論(1)  編輯 收藏 引用 所屬分類: BUG分析

            評(píng)論

            # re: 結(jié)構(gòu)體對(duì)齊問(wèn)題 2008-05-25 21:51 isabc

            #pragma pack(push)
            #pragma pack(1)
            typedef struct arp_header{
            //-----------------------DLC Header----------------------------------------
            unsigned char DesMAC[6]; //目標(biāo)MAC
            unsigned char SrcMAC[6]; //源MAC
            unsigned short EtherType; //EtherType默認(rèn)為0x0806是ARP幀的類型值
            //-----------------------ARP Frame-----------------------------------------
            unsigned short HW_Type; //硬件類型
            unsigned short Prot_Type; //上層協(xié)議類型
            unsigned char HW_Addr_Len; //MAC地址長(zhǎng)度
            unsigned char Prot_Addr_Len; //IP地址類型
            unsigned short Opcode; //操作碼 0x01表示ARP請(qǐng)求包 0x02表示RARP應(yīng)答包

            unsigned char Send_MAC_Addr[6]; //發(fā)送方MAC
            unsigned long Send_IP_Addr; //發(fā)送方IP
            unsigned char Targ_MAC_Addr[6];//接收方MAC
            unsigned long arg_IP_Addr; //接受方IP
            unsigned char padding[18]; //填充數(shù)據(jù)
            }ARPHEADER,*PARPHEADER;
            #pragma pack(pop)
              回復(fù)  更多評(píng)論   

            廣告信息(免費(fèi)廣告聯(lián)系)

            中文版MSDN:
            歡迎體驗(yàn)

            99精品久久精品| 久久精品国产亚洲av麻豆蜜芽| 久久综合久久久| 久久综合九色综合欧美就去吻| 久久亚洲AV成人无码软件| 欧美丰满熟妇BBB久久久| 国产高潮久久免费观看| 伊人久久综合成人网| 久久精品国产精品亜洲毛片| 亚洲∧v久久久无码精品| 久久精品成人免费国产片小草| 亚洲熟妇无码另类久久久| 久久久久国产一区二区三区| 乱亲女H秽乱长久久久| 亚洲日韩欧美一区久久久久我| 久久精品九九亚洲精品天堂| 久久天天婷婷五月俺也去| 国产精品成人久久久久久久| 日韩AV无码久久一区二区 | 精品久久久久久久无码 | 久久精品国产乱子伦| 国产激情久久久久影院老熟女免费 | 欧美精品一区二区精品久久| 亚洲va久久久噜噜噜久久| 人妻少妇精品久久| 欧美伊人久久大香线蕉综合69| 曰曰摸天天摸人人看久久久| 国产精品久久久久影院色| 久久AV高清无码| 欧美牲交A欧牲交aⅴ久久| 色综合久久综合中文综合网| 久久久久av无码免费网| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产91色综合久久免费分享| 国产毛片欧美毛片久久久| 国内精品久久久久久久久电影网 | 久久综合鬼色88久久精品综合自在自线噜噜 | 天天影视色香欲综合久久| 久久影视综合亚洲| 97香蕉久久夜色精品国产 | 91精品国产综合久久婷婷|