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

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

?? arp.lst

?? 用c8051f340基于51單片機上網(wǎng)
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 153   2              }
 154   1      }
 155          
 156          
 157          
 158          
 159          //------------------------------------------------------------------------
 160          // Find the ethernet hardware address for the given ip address
 161          // If destination IP is on my subnet then we want the eth
 162          // address      of destination, otherwise we want eth addr of gateway. 
 163          // Look in ARP cache first.  If not found there, send ARP request.
 164          // Return pointer to the hardware address or NULL if not found
 165          // See "TCP/IP Illustrated, Volume 1" Sect 4.5
 166          //------------------------------------------------------------------------
 167          UCHAR xdata * arp_resolve(ULONG dest_ipaddr)
 168          {
 169   1         UCHAR i;
 170   1            
 171   1         // If destination IP is not on my subnet then we really want eth addr
 172   1              // of gateway, not destination IP
 173   1              if ((dest_ipaddr ^ my_ipaddr) & my_subnet)
 174   1              {
 175   2                      if (gateway_ipaddr == 0)
 176   2                      {
C51 COMPILER V8.08   ARP                                                                   11/04/2008 18:45:33 PAGE 4   

 177   3                              return (NULL);  
 178   3                      }
 179   2                      else dest_ipaddr = gateway_ipaddr;
 180   2              }
 181   1              
 182   1                 
 183   1         // See if IP addr of interest is in ARP cache
 184   1         for (i=0; i < CACHESIZE; i++)
 185   1         {
 186   2            if (arp_cache[i].ipaddr == dest_ipaddr)
 187   2               return (&arp_cache[i].hwaddr[0]);
 188   2         }
 189   1      
 190   1              // Not in cache so broadcast ARP request
 191   1              arp_send(NULL, dest_ipaddr, ARP_REQUEST);
 192   1                 
 193   1         // Set a flag to indicate that an IP datagram is waiting
 194   1         // to be sent
 195   1         waiting_for_arp = TRUE;
 196   1                                            
 197   1         // Null means that we have sent an ARP request
 198   1         return (NULL); 
 199   1      }
 200          
 201          
 202          
 203          
 204          
 205          //------------------------------------------------------------------------
 206          // This handles incoming ARP messages
 207          // See "TCP/IP Illustrated, Volume 1" Sect 4.4
 208          // Todo:  Resolve problem of trying to add to a full cache
 209          //------------------------------------------------------------------------
 210          void arp_rcve(UCHAR xdata * inbuf)
 211          {
 212   1         UCHAR idata i, cached, oldest;
 213   1         UINT idata minimum;
 214   1         ARP_HEADER xdata * arp;
 215   1            
 216   1         arp = (ARP_HEADER xdata *)(inbuf + 14);
 217   1         cached = FALSE;
 218   1         
 219   1         // Print message
 220   1               
 221   1         // Validate incoming frame
 222   1         if ((arp->hardware_type != DIX_ETHERNET) ||
 223   1             (arp->protocol_type != IP_PACKET)) return;
 224   1      
 225   1         // Search ARP cache for senders IP address
 226   1         // If found, update entry and restart timer
 227   1         for (i=0; i < CACHESIZE; i++)
 228   1         {
 229   2            if (arp_cache[i].ipaddr == arp->source_ipaddr)
 230   2            {
 231   3               memcpy(&arp_cache[i].hwaddr[0], &arp->source_hwaddr[0], 6);
 232   3               arp_cache[i].timer = CACHETIME;                
 233   3               cached = TRUE;
 234   3                        
 235   3               break;  
 236   3            }
 237   2         }
 238   1         
C51 COMPILER V8.08   ARP                                                                   11/04/2008 18:45:33 PAGE 5   

 239   1         if (arp->dest_ipaddr != my_ipaddr) return;
 240   1         
 241   1         // At this point we know the the frame is addressed to me
 242   1         // If not already in cache then add entry and start timer
 243   1         if (cached == FALSE)
 244   1         {
 245   2            // Find first blank space and add entry
 246   2                      // Blank entries are indicated by ip addr = 0
 247   2            for (i=0; i < CACHESIZE; i++)
 248   2            {
 249   3               if (arp_cache[i].ipaddr == 0) 
 250   3               {
 251   4                  arp_cache[i].ipaddr = arp->source_ipaddr;
 252   4                  memcpy(&arp_cache[i].hwaddr[0], &arp->source_hwaddr[0], 6);   
 253   4                  arp_cache[i].timer = CACHETIME;
 254   4                      break;
 255   4               }
 256   3            }
 257   2      
 258   2                      // If no blank entries in arp cache     then sort cache
 259   2                      // to find oldest entry and replace it
 260   2                      if (i == CACHESIZE)
 261   2                      {
 262   3                              // Oldest entry is the one with lowest timer value                      
 263   3                              minimum = 0xFFFF;
 264   3                              for (i=0; i < CACHESIZE; i++)
 265   3              {
 266   4                                      if (arp_cache[i].timer < minimum) 
 267   4                                      {
 268   5                                              minimum = arp_cache[i].timer;
 269   5                                              oldest = i;
 270   5                                      }
 271   4                              }
 272   3              
 273   3                              // "oldest" is now index of oldest entry, so replace it
 274   3                              arp_cache[oldest].ipaddr = arp->source_ipaddr;
 275   3               memcpy(&arp_cache[oldest].hwaddr[0], &arp->source_hwaddr[0], 6);   
 276   3               arp_cache[oldest].timer = CACHETIME;
 277   3              }
 278   2              }
 279   1      
 280   1         
 281   1         // If we are waiting for an arp response and the arp response
 282   1              // that just came in is addressed to me and is from the host
 283   1              // we are waiting for, then send        the message-in-waiting
 284   1         if (arp->message_type == ARP_RESPONSE)
 285   1         {
 286   2              if ((waiting_for_arp) && (wait.ipaddr == arp->source_ipaddr))
 287   2              {
 288   3                      waiting_for_arp = FALSE;
 289   3                              ip_send(wait.buf, wait.ipaddr, wait.proto_id, wait.len);
 290   3                      }
 291   2              }
 292   1              else if (arp->message_type == ARP_REQUEST)
 293   1         {
 294   2              // Send ARP response 
 295   2              arp_send(arp->source_hwaddr, arp->source_ipaddr, ARP_RESPONSE);
 296   2              }
 297   1      }
 298          
 299          

C51 COMPILER V8.08   ARP                                                                   11/04/2008 18:45:33 PAGE 6   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1449    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    110    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      20
   IDATA SIZE       =      1       5
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线综合+亚洲+欧美中文字幕| 日韩三区在线观看| 欧美日韩精品免费观看视频 | 国产欧美日韩麻豆91| 亚洲精品视频免费看| 激情小说欧美图片| 欧美日韩一级片网站| 国产精品久久久久久久久免费丝袜| 五月婷婷久久综合| 在线观看亚洲专区| 亚洲天堂免费看| 国产精品69毛片高清亚洲| 欧美另类变人与禽xxxxx| 一区二区三国产精华液| 成人福利电影精品一区二区在线观看| 欧美电影免费观看完整版| 亚洲国产精品精华液网站| 99久久99久久久精品齐齐| 亚洲国产精品精华液2区45| 黄页视频在线91| 精品国产亚洲在线| 久久精品国产免费| 日韩视频国产视频| 久久精品国产一区二区三| 欧美久久久久免费| 天天亚洲美女在线视频| 欧美在线观看视频在线| 久久99精品国产91久久来源| 91精品国产91久久久久久一区二区| 亚洲一区免费在线观看| 97se亚洲国产综合自在线不卡| 中文字幕av一区二区三区高| 国产麻豆视频精品| 久久久九九九九| 国产在线不卡视频| 国产欧美综合色| 国产大陆a不卡| 国产欧美日韩精品在线| 国产99精品在线观看| 国产亚洲成aⅴ人片在线观看| 久久99精品国产91久久来源| 久久无码av三级| 国产成人8x视频一区二区| 国产精品美女久久久久久| 不卡av在线网| 一区二区视频在线看| 欧美日韩一级片网站| 天天色综合天天| 日韩欧美国产系列| 国产黄色成人av| 亚洲欧洲日韩一区二区三区| 色偷偷久久一区二区三区| 亚洲永久精品国产| 日韩一区二区电影| 国产美女娇喘av呻吟久久| 国产欧美一区二区精品性色| 99久久婷婷国产| 日韩专区一卡二卡| 久久一二三国产| 91香蕉视频在线| 日本不卡视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美日本高清视频在线观看| 免费成人小视频| 国产精品网站在线播放| 欧洲人成人精品| 国产一区日韩二区欧美三区| 亚洲色欲色欲www| 日韩一二在线观看| 成人成人成人在线视频| 亚洲综合色视频| 精品成人一区二区三区四区| 波多野结衣的一区二区三区| 香蕉影视欧美成人| 久久精品视频一区二区三区| 色婷婷综合五月| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99国产精品一区| 美日韩一区二区三区| 自拍偷拍亚洲综合| 精品国产免费视频| 欧美性做爰猛烈叫床潮| 国产成人av网站| 日本 国产 欧美色综合| 亚洲三级小视频| 久久综合狠狠综合久久综合88| 欧美亚洲一区二区三区四区| 国产精品一线二线三线| 五月天欧美精品| 亚洲欧美综合网| 久久综合网色—综合色88| 欧美图片一区二区三区| 91麻豆精品国产91久久久| 99精品视频在线观看免费| 国产精品18久久久久久久网站| 首页国产欧美久久| 一区二区三区四区亚洲| 国产精品午夜在线观看| www国产精品av| 欧美一区二区美女| 欧美亚洲综合一区| 色综合天天在线| gogogo免费视频观看亚洲一| 免费观看91视频大全| 日韩在线一区二区三区| 亚洲一级电影视频| 亚洲综合激情小说| 一区二区三区在线免费| 亚洲视频狠狠干| 国产精品乱人伦| 中文字幕视频一区二区三区久| 久久精品视频免费观看| 国产亚洲va综合人人澡精品 | 久久99国产精品久久| 日欧美一区二区| 美女网站在线免费欧美精品| 日韩成人一级片| 久久国产综合精品| 国产乱色国产精品免费视频| 国内精品写真在线观看| 国产一区久久久| 国产成人福利片| 成人精品视频.| 91网站最新网址| 欧洲精品在线观看| 欧美日韩美女一区二区| 51精品国自产在线| 日韩美女一区二区三区| 久久精品一区二区三区四区| 中文无字幕一区二区三区| 国产精品久久久久久久久免费桃花 | 天堂蜜桃一区二区三区 | 亚洲午夜精品在线| 日日夜夜精品视频天天综合网| 男女视频一区二区| 国产一区二区中文字幕| 成人福利电影精品一区二区在线观看| 91天堂素人约啪| 在线成人免费视频| 国产亚洲精品精华液| 亚洲日本一区二区| 日韩不卡在线观看日韩不卡视频| 国产综合色精品一区二区三区| 99久久综合色| 欧美精品免费视频| 国产三级精品三级| 亚洲国产综合在线| 国产乱色国产精品免费视频| 色8久久人人97超碰香蕉987| 日韩欧美国产精品一区| 国产精品毛片久久久久久| 亚洲福利视频三区| 国产激情一区二区三区| 欧美性大战久久久久久久蜜臀| 精品国产乱码久久久久久影片| 综合在线观看色| 麻豆91在线观看| 91久久一区二区| 久久精品一区四区| 亚洲不卡av一区二区三区| 国产在线一区观看| 欧美图区在线视频| 中文字幕不卡一区| 美日韩一区二区三区| 91豆麻精品91久久久久久| 日韩精品影音先锋| 一区二区不卡在线视频 午夜欧美不卡在| 九九久久精品视频| 欧美视频在线不卡| 中文字幕一区二区三区四区| 六月丁香婷婷久久| 欧美日韩卡一卡二| 国产精品理论片在线观看| 久久国产麻豆精品| 欧美日韩久久久| 亚洲人成伊人成综合网小说| 国产精品一区一区三区| 91.麻豆视频| 亚洲狠狠爱一区二区三区| 99麻豆久久久国产精品免费优播| 精品国产乱码久久久久久影片| 亚洲国产精品久久不卡毛片| 色一情一伦一子一伦一区| 国产日产欧产精品推荐色| 免费成人小视频| 91麻豆精品国产91| 天天av天天翘天天综合网| 在线观看欧美精品| 亚洲欧美偷拍卡通变态| 成人看片黄a免费看在线| 国产亚洲精品aa| 国产精品亚洲а∨天堂免在线| 91精品国产色综合久久不卡电影 | 91精品国产麻豆| 婷婷综合在线观看| 欧美群妇大交群的观看方式| 亚洲午夜一二三区视频| 欧美日韩专区在线| 午夜婷婷国产麻豆精品| 欧美精三区欧美精三区|