⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icmp.c.bak

📁 CP2201和51单片机实现ARP ICMP IP UDP协议
💻 BAK
字号:
/*==============================================*/
//	ICMP协议程序
//	FOR AVR DEV 1.0
/*==============================================*/

#include  "ne2000.h"
#include "ip.h"
extern union NetNode xdata myNode;
extern unsigned int chksum(unsigned char *check,unsigned int size);
/*==============================================*/
//	函数名称:	PING应答
/*==============================================*/
void ping_answer(INT8U xdata *inbuf,union ip_address_type ip_addr, INT16U len)
{
	unsigned int 	i;
	unsigned char  xdata icmp_outbuf[len];
	icmp_head xdata * icmp_in,*icmp_out;
	icmp_in=(icmp_head xdata * )inbuf;
	icmp_out=(icmp_head xdata * )icmp_outbuf;
	union ethernet_address_type answeraddress;
	if(icmp_in->type == 0x08)
	{				//	表示是ping请求
	    	for (i = 8; i < len; i++)	//	ADD form protocal
	    	{			//	将数据复制到发送缓冲区	   
	 	    	icmp_outbuf[i] = inbuf[i];
	    	} 
	        icmp_out->type = 0x00;		// is icmp answer;
	        icmp_out->id=icmp_in->id;
	        icmp_out->seq=icmp_in->seq;
		   icmp_out->crc = 0;
	    	icmp_out->crc =~chksum(icmp_outbuf,len); 
             ip_send(icmp_outbuf,ip_addr, 0x01, len );		
	}  
}

⌨️ 快捷键说明

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