icmp._c

来自「AVR以太网开发板中的几个例子。文件中定义了网卡芯片的IP地址,默认值是192.」· _C 代码 · 共 41 行

_C
41
字号
#include "main.h"
#include "rtl8019as.h"
#include "arp.h"
#include "ip.h"
#include "icmp.h"

unsigned char icmp_packhandle(unsigned char *icmpbegin,unsigned int icmplen)
{
 //unsigned char icmp_typ=0;
 unsigned int  icmp_chksum=0;
 unsigned int  icmp_id=0;
 unsigned int  icmp_sn=0;
 //unsigned int  icmp_datalen=0;
 unsigned int  *icmp_p;
 
 icmp_p=(unsigned int *)icmpbegin;
 //icmp_datalen=(icmplen-8);
  
 switch((*icmpbegin))
 {
  case 0x08:     //回应请求报文
       icmp_id=(*(icmpbegin+4));
	   icmp_id<<=8;
	   icmp_id|=(*(icmpbegin+5));
	   
	   icmp_sn=(*(icmpbegin+6));
	   icmp_sn<<=8;
	   icmp_sn|=(*(icmpbegin+7));
	   
	   (*icmpbegin)=0x00;
	   (*(icmpbegin+2))=0;
       (*(icmpbegin+3))=0;
       icmp_chksum=tsum(icmp_p,icmplen); //校验和的求法
	   (*(icmpbegin+3))=(icmp_chksum>>8)&0xFF;
	   (*(icmpbegin+2))=icmp_chksum&0xFF;	   	   
       break;
	   
  default:break;
 }
 return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?