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

📄 net_ping.c

📁 TI的2812控制交通灯
💻 C
字号:

void SumCheck(u8 *Addr,u16 len);

void Revert_Ping(void)  //回复Ping数据包
{
   u16 i,Data_Len,Data_SUM,Len;
   //开始拼接Ping的回复数据包开始
   //PACK_Type=0x8000;
   HEAD_Ethernet();        //以太网头
   HEAD_IP();   //IP首部
   Len=Start_ICMP;
   //ICMP首部
   Data_Len=Receive_Buffer[14+2]*256+Receive_Buffer[14+2+1]-20;  //ICMP包的长度
   Send_Buffer[Len++]=0;  //回显应答(Ping应答)
   Send_Buffer[Len++]=0;
   Send_Buffer[Len++]=0;  //校验和
   Send_Buffer[Len++]=0;
   for (i=0;i<4;i++)
      Send_Buffer[Len++]=Receive_Buffer[Len];  //表示符和序号
   for (i=0;i<Data_Len-8;i++)
      Send_Buffer[Len++]=Receive_Buffer[Len];  //选项数据

   //计算校验和
   Data_SUM=CHECK_SUM(Send_Buffer,14+20,Data_Len); //ICMP首部校验和
   Send_Buffer[14+20+2]=Data_SUM/0x100;
   Send_Buffer[14+20+3]=Data_SUM&0xff;

	SumCheck(&Send_Buffer[14+20],Data_Len);
   //拼接数据包结束

   NET_Send_Packet(Send_Buffer,Len);  //发送数据包
}




⌨️ 快捷键说明

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