亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dhcp.lst

?? 本程序是一個RS232轉網口的。是一個透明傳輸的模塊
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.06   DHCP                                                                  09/26/2008 13:36:22 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DHCP
OBJECT MODULE PLACED IN ..\OUT\Dhcp.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Source\Dhcp.c BROWSE DEBUG OBJECTEXTEND PRINT(..\OUT\Dhcp.lst) OBJECT(..
                    -\OUT\Dhcp.obj)

stmt level    source

   1          /*
   2          *****************************************************************************************************
   3          *
   4          *  File name: dhcp.c
   5          *****************************************************************************************************
   6          */
   7          #include "..\head\includes.h"
   8          
   9          
  10          void DHCP_Pack(unsigned char PACK_TYPE) ;
  11          /*
  12          *****************************************************************************************************
  13          *FUNC: DHCP解析
  14          *NOTE: 
  15          *****************************************************************************************************
  16          */
  17          //******* DHCP 的6種狀態 *******
  18          #define DHCP_INIT     0
  19          #define DHCP_SELECT   1
  20          #define DHCP_REQUEST  2
  21          #define DHCP_BOUND    3
  22          #define DHCP_RENEW    4
  23          #define DHCP_REBIND   5
  24          
  25          
  26          //******* DHCP 的幾種報文類型狀態 *******
  27          #define OP_DHCPDISCOVER  1
  28          #define OP_DHCPOFFER     2
  29          #define OP_DHCPREQUEST   3
  30          #define OP_DHCPDELINE    4
  31          #define OP_DHCPACK       5
  32          #define OP_DHCPNACK      6
  33          #define OP_DHCPRELEASE   7
  34          #define OP_DHCPINFORM    8
  35          
  36           
  37          
  38          _DHCP_REG_ xdata DHCPReg;
  39          bit bBound = FALSE;
  40          
  41          /*
  42          *****************************************************************************************************
  43          *FUNC: 綁定與釋放回調函數
  44          *NOTE: 
  45          *****************************************************************************************************
  46          */
  47          void On_Bound(void) reentrant
  48          {
  49   1          //申請到的IP可寫入FLASH,下次開機時優先申請該IP.可選做
  50   1          DHCPReg.timer100.dwords = 60;                              //2分鐘 FOR DEBUG 
  51   1              if ((DHCPReg.timer100.dwords == 0) || (DHCPReg.timer100.dwords > 7200)){
  52   2              DHCPReg.timer100.dwords = 7200;                        //如果DHCP沒指配時間或大于2小時,默認為2小時
  53   2              }
  54   1          my_ip_address.dwords      = DHCPReg.myip.dwords;           //使用分配得到的IP
C51 COMPILER V7.06   DHCP                                                                  09/26/2008 13:36:22 PAGE 2   

  55   1          gateway_ip_address.dwords = DHCPReg.gatewayip.dwords;      //使用分配得到的網關IP
  56   1              mask_ip_address.dwords    = DHCPReg.maskip.dwords;         //使用分配得到的子網掩碼
  57   1              if (gateway_ip_address.dwords == 0) {                      //網關IP=0
  58   2              if (DHCPReg.severip.dwords != 0) {                     //DHCP服務器IP不等于0
  59   3                  gateway_ip_address.dwords = DHCPReg.severip.dwords;//把DHCP服務器IP當作網關IP
  60   3                      }
  61   2              }
  62   1      
  63   1              DHCPReg.timer50.dwords  = (DHCPReg.timer100.dwords) / 2;        //50%定時器
  64   1              DHCPReg.timer87.dwords  = DHCPReg.timer100.dwords * 875 /1000;  //87.5%定時器
  65   1              bBound = TRUE;
  66   1      }
  67          
  68          
  69          void On_Release(void)reentrant
  70          {
  71   1          DHCP_Pack(OP_DHCPRELEASE);
  72   1          bBound = FALSE;
  73   1              DHCPReg.state = DHCP_INIT;
  74   1      
  75   1              if (bConnect) {                                     //如果已連上,關閉鏈路 
  76   2              tcp_send(&TCPSend,FLG_RST, 20, IndexOfClient);  //這里一定要加RST
  77   2                  InerClose(IndexOfClient);                       //關閉該套接字,重連 
  78   2              }
  79   1      }
  80          
  81          /*
  82          *****************************************************************************************************
  83          *FUNC:  DHCP 初始化
  84          *NOTE: 
  85          *****************************************************************************************************
  86          */
  87          void DHCPValueInit(void)
  88          {
  89   1          bBound = FALSE;
  90   1          DHCPReg.state = DHCP_INIT;
  91   1          DHCPReg.myip.dwords      = 0;   
  92   1              DHCPReg.gatewayip.dwords = 0;
  93   1          DHCPReg.maskip.dwords    = 0;   
  94   1              DHCPReg.dns_m.dwords     = 0;
  95   1              DHCPReg.dns_s.dwords     = 0;
  96   1              DHCPReg.severip.dwords   = 0;
  97   1              DHCPReg.timer100.dwords  = 0;
  98   1              DHCPReg.timer50.dwords   = 0;
  99   1              DHCPReg.timer87.dwords   = 0;
 100   1      }
 101          void DHCPInit(void) 
 102          {
 103   1          DHCPValueInit();
 104   1          DHCPReg.on_bound   = (void*)On_Bound;
 105   1              DHCPReg.on_release = (void*)On_Release;
 106   1      }
 107          
 108          
 109          /*
 110          *****************************************************************************************************
 111          *FUNC: 打包 DHCP Discover
 112          *NOTE: 1: DHCP 是基于UDP協議的
 113                 2: 果沒回應隔9,13,16秒后再發,如果還是沒響應,隔5分鐘分鐘再發起DISCOVER
 114                     3: UDP CRC包括UDP頭及UDP數據 長度len
 115          
 116                     全部廣播在家里路由器試可以續租可以得到響應
C51 COMPILER V7.06   DHCP                                                                  09/26/2008 13:36:22 PAGE 3   

 117                             //my_ip_address.dwords = 0;//自己的IP還是未知發0.0.0.0
 118                             //DHCP_Pack_Send(pTxdnet, dest_ip, UDP_TYPE, len);
 119          *****************************************************************************************************
 120          */
 121          void DHCP_Pack(unsigned char PACK_TYPE) 
 122          {
 123   1              unsigned int len,i;
 124   1          unsigned char model_id_len=0,j;
 125   1              union netcard xdata *pTxdnet;
 126   1              union IP_address xdata dest_ip;
 127   1              union IP_address xdata source_ip;
 128   1      
 129   1              pTxdnet = &UDPSend;
 130   1            
 131   1          source_ip.dwords = 0;                                       //源IP未知,發送0.0.0.0
 132   1              dest_ip.dwords = 0xffffffff;                                //目的IP未知,采用廣播 
 133   1                                                 
 134   1              pTxdnet->udpframe.sourceport = 68;                              //DHCP源端口為68
 135   1              pTxdnet->udpframe.destport   = 67;                          //DHCP目的端口為67
 136   1              //pTxdnet->udpframe.length = len;                                   //長度未定  
 137   1              pTxdnet->udpframe.crc = 0;                                  //UDP頭部8字節
 138   1      
 139   1              
 140   1              pTxdnet->ipframe.sourceip[0] = source_ip.words[0];           //參于計算檢驗和,不算在UDP長度里
 141   1              pTxdnet->ipframe.sourceip[1] = source_ip.words[1];           //源IP未知,發送0.0.0.0 
 142   1              pTxdnet->ipframe.destip[0]   = dest_ip.words[0];
 143   1              pTxdnet->ipframe.destip[1]   = dest_ip.words[1];             // ffffffff
 144   1      
 145   1          pTxdnet->dhcpframe.op              = 1;                      //DHCP 請求
 146   1              pTxdnet->dhcpframe.hardwaretype    = 1;                      //以太網
 147   1          pTxdnet->dhcpframe.hardwarelen     = 6;
 148   1              pTxdnet->dhcpframe.hops            = 0;                      //跳數置0
 149   1          pTxdnet->dhcpframe.transactionid   = DHCPReg.transactionid;  //類似SEQ
 150   1              pTxdnet->dhcpframe.seconds         = 500;                    //?
 151   1              pTxdnet->dhcpframe.flags           = 0x8000;                 //最高位為1:廣播請求,0:單播 抓包=0
 152   1      
 153   1              for (i=0; i<4; i++) {
 154   2                  if ((PACK_TYPE == OP_DHCPREQUEST) && bBound){            //續租的時候這里要填之前申請到的本地IP
 155   3                  pTxdnet->dhcpframe.clientip[i] = DHCPReg.myip.bytes[i];
 156   3                      } else {
 157   3                  pTxdnet->dhcpframe.clientip[i] = 0;                  //參照抓包也是=0
 158   3                      }
 159   2              pTxdnet->dhcpframe.yourip[i]      = 0;                   //DHCP服務器分配給客戶端的 
 160   2              pTxdnet->dhcpframe.severip[i]     = 0;                   //如果須要轉發才填 
 161   2              pTxdnet->dhcpframe.gatewayip[i]   = 0;                   //如果須要轉發才填 
 162   2              }
 163   1      
 164   1              for (i=0; i<16; i++) {                                       //16字節前6字節填客戶硬件地址,余補0
 165   2                  if (i < 6) {
 166   3                  pTxdnet->dhcpframe.clientmac[i] = my_ethernet_address.bytes[i];
 167   3                      } else {
 168   3                  pTxdnet->dhcpframe.clientmac[i] = 0;
 169   3                      }
 170   2              }
 171   1          for (i=0; i<64; i++) {                           //服務器主機名Server之名稱字串,以0x00結尾
 172   2              pTxdnet->dhcpframe.severhostname[i] = 0;
 173   2          }
 174   1          for (i=0; i<128; i++) {                          //啟動文件名若client需要透過網路開機
 175   2              pTxdnet->dhcpframe.bootfilename[i] = 0;
 176   2              }
 177   1      
 178   1              pTxdnet->dhcpframe.magic[0]=0x63;                //抓包這里有四字節內容如右:(OK)
C51 COMPILER V7.06   DHCP                                                                  09/26/2008 13:36:22 PAGE 4   

 179   1              pTxdnet->dhcpframe.magic[1]=0x82;
 180   1              pTxdnet->dhcpframe.magic[2]=0x53;
 181   1              pTxdnet->dhcpframe.magic[3]=0x63;
 182   1              //len = 8+28+16+64+128+4;
 183   1              len = 248;                                       //長度很重要
 184   1      
 185   1              //---------- 以下為OPTIONS  --------------------
 186   1              i=0;                                             //長度可變
 187   1      
 188   1              //-----  包類型 -----------
 189   1          pTxdnet->dhcpframe.options[i++]=53;              //選項代碼   
 190   1              pTxdnet->dhcpframe.options[i++]=1;               //選項長度
 191   1              pTxdnet->dhcpframe.options[i++]=PACK_TYPE;       //DHCP包類型
 192   1      
 193   1              //----- 請求自動分配 ------ 
 194   1          if (PACK_TYPE == OP_DHCPDISCOVER) {              //發現包時請求自動分配
 195   2              pTxdnet->dhcpframe.options[i++]=0x74;
 196   2                  pTxdnet->dhcpframe.options[i++]=1;
 197   2                  pTxdnet->dhcpframe.options[i++]=1; 
 198   2          }
 199   1               
 200   1          //----- 請求使用該本地IP ------                                            
 201   1              if ((PACK_TYPE == OP_DHCPREQUEST) && (bBound==FALSE)){  //DHCP offer后有分配給一個本地IP
 202   2                  pTxdnet->dhcpframe.options[i++]=50;                 //請求本地IP填在選項里
 203   2                  pTxdnet->dhcpframe.options[i++]=4;
 204   2                  pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[0];
 205   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[1];
 206   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[2];
 207   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[3];
 208   2      
 209   2              //DHCP SEVER IP填在選項里
 210   2                  pTxdnet->dhcpframe.options[i++]=54;          
 211   2                  pTxdnet->dhcpframe.options[i++]=4;
 212   2                  pTxdnet->dhcpframe.options[i++]=DHCPReg.severip.bytes[0];
 213   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.severip.bytes[1];
 214   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.severip.bytes[2];
 215   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.severip.bytes[3];
 216   2          }
 217   1      
 218   1          //----- 主動釋放時如果有本地IP,選填 ------ 
 219   1              if ((PACK_TYPE == OP_DHCPRELEASE) && (bBound == TRUE)) {
 220   2                  pTxdnet->dhcpframe.options[i++]=50;                 //請求本地IP填在選項里
 221   2                  pTxdnet->dhcpframe.options[i++]=4;
 222   2                  pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[0];
 223   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[1];
 224   2                      pTxdnet->dhcpframe.options[i++]=DHCPReg.myip.bytes[2];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆精品一区二区| 日韩一级高清毛片| 91精品国产欧美日韩| 久久精品视频网| 秋霞成人午夜伦在线观看| av在线播放成人| 久久综合九色综合欧美就去吻| 亚洲精品国产精华液| 加勒比av一区二区| 555www色欧美视频| 亚洲激情自拍视频| 成人在线综合网站| 久久中文字幕电影| 三级欧美韩日大片在线看| 成人涩涩免费视频| 欧美一区二区三区在线电影| 一区二区三区日韩| 成人高清视频免费观看| 精品粉嫩超白一线天av| 亚洲成av人**亚洲成av**| 北岛玲一区二区三区四区 | 久久国产精品色婷婷| 欧美综合天天夜夜久久| 国产亚洲欧美激情| 国产麻豆成人传媒免费观看| 日韩欧美激情一区| 免费精品视频最新在线| 欧美一区二区啪啪| 五月开心婷婷久久| 欧美日韩一级大片网址| 亚洲v精品v日韩v欧美v专区| 在线观看成人小视频| 亚洲综合成人在线视频| 日本久久精品电影| 亚洲国产cao| 欧美精品久久久久久久多人混战| 一区二区国产视频| 在线看日韩精品电影| 亚洲激情欧美激情| 91黄色激情网站| 天堂一区二区在线免费观看| 欧美肥胖老妇做爰| 久久精品国产一区二区三| 久久综合五月天婷婷伊人| 国产成人午夜电影网| 国产欧美日韩一区二区三区在线观看| 国产黑丝在线一区二区三区| 国产亚洲一区二区三区在线观看| 国产成人亚洲综合a∨婷婷| 中文字幕成人在线观看| 97国产一区二区| 亚洲二区在线视频| 日韩午夜av一区| 国产成人免费视频| 国产精品久久福利| 欧美日韩电影一区| 韩国v欧美v日本v亚洲v| 国产精品入口麻豆九色| 在线观看欧美日本| 国产又黄又大久久| 一区二区在线观看不卡| 日韩欧美黄色影院| 成人高清视频在线| 视频一区欧美日韩| 国产日韩精品久久久| 在线观看亚洲精品| 精品一二三四区| 综合激情网...| 日韩精品一区二区三区视频| 成+人+亚洲+综合天堂| 亚洲国产精品天堂| 久久伊人蜜桃av一区二区| 91麻豆精东视频| 蜜臀久久99精品久久久久久9| 欧美国产一区在线| 日本不卡不码高清免费观看| 久久久亚洲精品石原莉奈| 成人av在线看| 亚洲成人在线网站| 亚洲国产精品v| 日韩三级伦理片妻子的秘密按摩| 成人av影院在线| 久久成人免费日本黄色| 最新欧美精品一区二区三区| 日韩精品专区在线影院重磅| 欧美最猛黑人xxxxx猛交| 国产一区二区h| 日本不卡的三区四区五区| 亚洲精品国产高清久久伦理二区| 精品少妇一区二区三区在线播放| 91成人免费网站| 国产99久久久久| 国产一区欧美二区| 日本欧美韩国一区三区| 亚洲制服丝袜一区| 国产精品传媒在线| 国产丝袜欧美中文另类| 欧美大片一区二区三区| 91麻豆精品国产91久久久久久久久| 99re成人精品视频| 成人免费av网站| 国产99久久久精品| 国产老妇另类xxxxx| 久久成人av少妇免费| 日韩精品一级二级 | 91一区二区在线| 国产高清在线精品| 国产美女一区二区| 激情另类小说区图片区视频区| 日韩国产高清影视| 日韩和欧美一区二区| 舔着乳尖日韩一区| 亚洲制服丝袜av| 香蕉乱码成人久久天堂爱免费| 亚洲另类在线一区| 亚洲精品国产一区二区精华液 | 懂色av一区二区三区免费看| 久久精品99久久久| 精品亚洲免费视频| 韩国女主播一区| 国产不卡免费视频| 波多野结衣在线一区| 成人av网站在线观看| 99re在线精品| 日本精品一区二区三区高清 | 成人精品免费网站| 成人精品小蝌蚪| 99久久国产综合色|国产精品| 波波电影院一区二区三区| 91在线观看污| 欧美无砖专区一中文字| 欧美男男青年gay1069videost| 欧美精品久久一区| 精品成人一区二区三区四区| 久久影音资源网| 亚洲欧洲精品一区二区三区不卡 | 天堂资源在线中文精品| 亚瑟在线精品视频| 国内精品第一页| 成人免费的视频| 欧洲日韩一区二区三区| 欧美一级理论片| 国产婷婷色一区二区三区在线| 亚洲欧洲精品一区二区三区| 亚洲最大成人综合| 六月丁香婷婷久久| 99精品在线观看视频| 6080国产精品一区二区| 欧美国产日本韩| 肉丝袜脚交视频一区二区| 麻豆精品视频在线| av午夜精品一区二区三区| 91九色02白丝porn| 精品88久久久久88久久久| 最新久久zyz资源站| 奇米777欧美一区二区| 成人h动漫精品一区二| 欧美日韩成人激情| 国产精品网站一区| 日韩精品高清不卡| 不卡av在线免费观看| 欧美一级日韩免费不卡| 国产精品久久久久久久久免费桃花| 午夜国产精品一区| 99精品黄色片免费大全| 欧美电视剧在线观看完整版| 亚洲青青青在线视频| 久久精品国产亚洲aⅴ| 99久久精品国产一区| 26uuu国产日韩综合| 亚洲一区二区综合| 成人av电影在线网| 精品欧美久久久| 午夜在线电影亚洲一区| 99久久精品免费精品国产| 久久青草欧美一区二区三区| 水野朝阳av一区二区三区| 91毛片在线观看| 中文av字幕一区| 国产一级精品在线| 日韩免费视频一区二区| 亚洲va欧美va天堂v国产综合| 不卡一卡二卡三乱码免费网站| 欧美不卡123| 日本vs亚洲vs韩国一区三区 | 精品区一区二区| 日日摸夜夜添夜夜添国产精品| 91免费版在线| 日韩伦理免费电影| 成人激情电影免费在线观看| 337p日本欧洲亚洲大胆精品| 日韩精品91亚洲二区在线观看| 欧美中文字幕一区二区三区| 亚洲日本va午夜在线电影| 成人爽a毛片一区二区免费| 亚洲国产岛国毛片在线| 高清不卡一二三区| 中国色在线观看另类| 不卡av在线免费观看| 亚洲特级片在线|