arp.c

来自「此文档是网上一款开发板的完整系统,内附有电路图纸!系统有完整的接口程式,包含了字」· C语言 代码 · 共 32 行

C
32
字号
void arp_answer()
{
	unsigned char i;
	#ifdef debug
	send_string("\r\nARP: destip=");
	send_word(rxdnet.arpframe.destip[0]);
	send_word(rxdnet.arpframe.destip[1]);
	#endif
	if (rxdnet.arpframe.destip[0]==my_ip_address.words[0])
	if (rxdnet.arpframe.destip[1]==my_ip_address.words[1])
	{//表示是向我这个ip地址的请求
		for(i=16;i<64;i++)
		{//复制arp到发送缓冲区
			txdnet.bytes.bytebuf[i]=rxdnet.bytes.bytebuf[i];
		}
	for(i=0;i<3;i++)
	{//复制对方网卡地址或网关地址
		txdnet.etherframe.destnodeid[i]=rxdnet.etherframe.sourcenodeid[i];
		txdnet.arpframe.sourcenodeid[i]=txdnet.etherframe.sourcenodeid[i];
		txdnet.arpframe.destnodeid[i]=rxdnet.arpframe.sourcenodeid[i];
	}
	for(i=0;i<2;i++)
	{
		txdnet.arpframe.destip[i]=rxdnet.arpframe.sourceip[i];
		txdnet.arpframe.sourceip[i]=rxdnet.arpframe.destip[i];
	}
	txdnet.arpframe.operation=0x0002;//应答代码
	//txdnet.arpframe.sourceip[1]=0x1020; //debug
	send_packet(60);
	}
}

⌨️ 快捷键说明

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