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

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

?? wlan_phoenix.c

?? 利用PIC單片機來驅動WLAN卡
?? C
?? 第 1 頁 / 共 5 頁
字號:
	  packet[arp_tipaddr+i] = remoteipaddri[i];	//target ip addr
	  packet[arp_sipaddr+i] = ipaddri[i];		//source ip addr
	 } 
	bytecount += 8;
	bytecount +=6;
	packet[enetpacketLen11] = bytecount;
	packet[enetpacketLen03] = swapbytes(bytecount);
     rc = bap_write(TxFID,rxdatalength_offset,(char*)packet, packet[enetpacketLen11]+16);
	 rc=send_command(TransmitReclaim_Cmd,TxFID);
	 
     do_event_housekeeping();
    } 

   return(rc);
 }
//******************************************************************
//*	Perform ICMP Function
//*   This routine responds to a ping.
//******************************************************************
	unsigned int iphdrlen,ippktlen;	
    char tempcH,tempcL;

void icmp()
{
	char rc;
   //set echo reply
   packet[ICMP_typecode]=0x00;

   //clear the ICMP checksum
   packet[ICMP_cksum]=0x00;

   //setup the IP header
   setipaddrs();

   //calculate the ICMP checksum
   hdr_chksum =0;
   ippktlen=swapbytes(packet[ip_pktlen]);
   iphdrlen =(LOW_BYTE(packet[ip_vers_len]) & 0x0F) *4;
   	
   hdrlen = ippktlen - iphdrlen;
   addr = &packet[ICMP_typecode];
   cksum();
   packet[ICMP_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));
   //send the ICMP packet along on its way
   rc = echo_packet();
}
//******************************************************************
//*	init_udp Function
//*   This function sends UDP packet
//******************************************************************
void init_udp()
{

	udp_packet[enetpacketLen11] = 0x0036; 
   	udp_packet[enetpacketDest01]=remotemacaddri[0];
   	udp_packet[enetpacketDest23]=remotemacaddri[1];
   	udp_packet[enetpacketDest45]=remotemacaddri[2];
   	udp_packet[enetpacketSrc01]=macaddri[0];
   	udp_packet[enetpacketSrc23]=macaddri[1];
   	udp_packet[enetpacketSrc45]=macaddri[2];
	udp_packet[enetpacketLen03] = 0x3600;
	udp_packet[enetpacketSnap] = 0xAAAA;
	udp_packet[enetpacketCntrl] = 0x0003;
	udp_packet[enetpacketCntrl+1] = 0x0000;
	udp_packet[enetpacketType] = 0x0008;
	udp_packet[ip_vers_len] = 0x0045;
	udp_packet[ip_pktlen] = 0x2400;
	udp_packet[ip_id] = ++cntri;
	udp_packet[ip_frag_offset] = 0x0000;
	udp_packet[ip_ttlproto] = 0x1180;
	//upd_packet[ip_hdr_cksum] = 0x0000;
   	udp_packet[ip_srcaddr]=ipaddri[0];
   	udp_packet[ip_srcaddr+1]=ipaddri[1];
   	udp_packet[ip_destaddr]=remoteipaddri[0];
   	udp_packet[ip_destaddr+1]=remoteipaddri[1];
   	udp_packet[UDP_srcport] = make16(ee_parms[local_udpaddr_lo],ee_parms[local_udpaddr_hi]); //0x8813;
   	//udp_packet[UDP_destport] = 0x0900;
	udp_packet[UDP_len] = 0x1000;
	//udp_packet[UDP_cksum] = 0x0000;
	//udp_packet[UDP_data]   = 0x3231;
	//udp_packet[UDP_data+1] = 0x3433;
	//udp_packet[UDP_data+2] = 0x3635;
	//udp_packet[UDP_data+3] = 0x3837;
}

//******************************************************************
//*	send_udp Function
//*   This function sends UDP data
//******************************************************************
char send_udp(void)
{
	unsigned int TxFID;
	char rc;

   //this is all done before this datagram is sent
   //setup destination IP address
   //packet[ip_destaddr]=remoteipaddri[0];
   //packet[ip_destaddr+1]=remoteipaddri[1];
   //make phoenix module IP address source address
   //packet[ip_srcaddr]=ipaddri[0];
   //packet[ip_srcaddr+1]=ipaddri[1];
   //move hardware source address to destination address
   //packet[enetpacketDest01]=remotemacaddri[0];
   //packet[enetpacketDest23]=remotemacaddri[1];
   //packet[enetpacketDest45]=remotemacaddri[2];
   //make phoenix module mac address the source address
   //packet[enetpacketSrc01]=macaddri[0];
   //packet[enetpacketSrc23]=macaddri[1];
   //packet[enetpacketSrc45]=macaddri[2];
   
	// here's where your 8 bytes of data go..
	udp_packet[UDP_data]   = 0x3231;
	udp_packet[UDP_data+1] = 0x3433;
	udp_packet[UDP_data+2] = 0x3635;
	udp_packet[UDP_data+3] = 0x3837;

   //calculate the IP header checksum
   udp_packet[ip_hdr_cksum]=0x00;

   hdr_chksum =0;
   hdrlen = (LOW_BYTE(udp_packet[ip_vers_len]) & 0x0F) *4;
   addr = &udp_packet[ip_vers_len];
   cksum();
   udp_packet[ip_hdr_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));

   	udp_packet[UDP_destport] = make16(ee_parms[remote_udpaddr_lo],ee_parms[remote_udpaddr_hi]);

   //calculate the UDP checksum
   udp_packet[UDP_cksum] = 0x00;
   hdr_chksum =0;
   hdrlen = 0x08;
   addr = &udp_packet[ip_srcaddr];
   cksum();
   hdr_chksum = hdr_chksum + ((256*HIGH_BYTE(udp_packet[ip_ttlproto]))+udp_packet[UDP_len]);
   hdrlen = swapbytes(udp_packet[UDP_len]);
   addr = &udp_packet[UDP_srcport];
   cksum();
   udp_packet[UDP_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));
      //echo the incoming data back to the VB program

	TxFID = get_free_TxFID();
	if(TxFID == 0)
	 rc = 1;
	else
	{
     rc = bap_write(TxFID,rxdatalength_offset,(char*)udp_packet,udp_packet[enetpacketLen11]+16);
	 if(rc=send_command(TransmitReclaim_Cmd,TxFID))
		printf("\r\nTransmit failed");
	 else
 
	  //printf("\r\nSending UDP Data Packet to UDP port %d..\r\n",make16(ee_parms[remote_udpaddr_hi],ee_parms[remote_udpaddr_lo]));
	 
     do_event_housekeeping();
	}
	return(rc);
 }
//******************************************************************
//*	send_udp_discard Function
//*   This function sends a dummy UDP data
//******************************************************************
char send_udp_discard(void)
{
	unsigned int TxFID;
	char rc;

	//printf("\r\nSending Dummy UDP Packet To Discard Port 9..");

   //this is all done before we get here	
   //setup destination IP address
   //packet[ip_destaddr]=remoteipaddri[0];
   //packet[ip_destaddr+1]=remoteipaddri[1];
   //make phoenix module IP address source address
   //packet[ip_srcaddr]=ipaddri[0];
   //packet[ip_srcaddr+1]=ipaddri[1];
   //move hardware source address to destination address
   //packet[enetpacketDest01]=remotemacaddri[0];
   //packet[enetpacketDest23]=remotemacaddri[1];
   //packet[enetpacketDest45]=remotemacaddri[2];
   //make phoenix module mac address the source address
   //packet[enetpacketSrc01]=macaddri[0];
   //packet[enetpacketSrc23]=macaddri[1];
   //packet[enetpacketSrc45]=macaddri[2];

	udp_packet[UDP_data]   = 0x3231;
	udp_packet[UDP_data+1] = 0x3433;
	udp_packet[UDP_data+2] = 0x3635;
	udp_packet[UDP_data+3] = 0x3837;

   //calculate the IP header checksum
   udp_packet[ip_hdr_cksum]=0x00;

   hdr_chksum =0;
   hdrlen = (LOW_BYTE(udp_packet[ip_vers_len]) & 0x0F) *4;
   addr = &udp_packet[ip_vers_len];
   cksum();
   udp_packet[ip_hdr_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));

   udp_packet[UDP_destport] = 0x0900;
   //packet[UDP_srcport] = 0x8813;
   //calculate the UDP checksum
   udp_packet[UDP_cksum] = 0x00;
   hdr_chksum =0;
   hdrlen = 0x08;
   addr = &udp_packet[ip_srcaddr];
   cksum();
   hdr_chksum = hdr_chksum + ((256*HIGH_BYTE(udp_packet[ip_ttlproto]))+udp_packet[UDP_len]);
   hdrlen = swapbytes(udp_packet[UDP_len]);
   addr = &udp_packet[UDP_srcport];
   cksum();
   udp_packet[UDP_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));
      //echo the incoming data back to the VB program

	TxFID = get_free_TxFID();
	if(TxFID == 0)
	 rc = 1;
	else
	{
     rc = bap_write(TxFID,rxdatalength_offset,(char*)udp_packet,udp_packet[enetpacketLen11]+16);
	 if(rc=send_command(TransmitReclaim_Cmd,TxFID))
		printf("\r\nTransmit failed");
	 
     do_event_housekeeping();
	}
	return(rc);
 }
//******************************************************************
//*	UDP Function
//*   This function uses a Visual Basic UDP program to echo the
//*   data back to the VB program and set or reset PORT A bit 4
//*   under control of the VB program.
//******************************************************************
void udp()
{
	unsigned int temp;
	char rc;

   //port 7 is the well-known echo port
   if(packet[UDP_destport] == 0x0700)
   {
      //build the IP header
      setipaddrs();

      //swap the UDP source and destination ports
      temp = packet[UDP_srcport];
      packet[UDP_srcport] = packet[UDP_destport];
      packet[UDP_destport] = temp;

      //calculate the UDP checksum
      packet[UDP_cksum] = 0x00;

      hdr_chksum =0;
      hdrlen = 0x08;
      addr = &packet[ip_srcaddr];
      cksum();
      hdr_chksum = hdr_chksum + ((256*HIGH_BYTE(packet[ip_ttlproto]))+packet[UDP_len]);
      hdrlen = swapbytes(packet[UDP_len]);
      addr = &packet[UDP_srcport];
      cksum();
      packet[UDP_cksum]= ~(hdr_chksum + ((hdr_chksum & 0xFFFF0000) >> 16));
      //echo the incoming data back to the VB program
      rc = echo_packet();
   }

   //buttons on the VB GUI are pointed towards port address 5000 decimal
   else if(packet[UDP_destport] == 0x8813)
	  {
      if(packet[UDP_data] == '0')
         //received a "0" from the VB program
         LATA5=0;
      else if(packet[UDP_data] == '1')
         //received a "1" from the VB program
         LATA5=1;
      else if(packet[UDP_data] == 0x00)
         //received a 0x00 from the VB program
         LATA=0x00;
       else if(packet[UDP_data] == 0x01)
         //received a 0x01 from the VB program
         LATA1=1;
      else if(packet[UDP_data] == 0x02)
         //received a 0x02 from the VB program
         LATA2=1;
      else if(packet[UDP_data] == 0x03)
         //received a 0x03 from the VB program
         LATA3=1;
      else if(packet[UDP_data] == 0x04)
         //received a 0x04 from the VB program
		 LATA4=1;

     }
    

}
//******************************************************************
//*	TELNET SERVER BANNER STATEMENT CONSTANT
//******************************************************************
char const telnet_banner[] = "\r\nPHOENIX>";
//******************************************************************
//*	Port Definitions
//*   This address is used by TCP and the Telnet function.
//*   This can be changed to any valid port number as long as
//*   you modify your code to recognize the new port number.
//******************************************************************
#define  MY_PORT_ADDRESS      0x981F  // 8088 DECIMAL
//******************************************************************
//*	Application Code
//*   Your application code goes here.
//******************************************************************
void application_code()
{
   char i,j,k;

   i=0;
   if(aux_data[i] == 0x0D && aux_data[i+1] == 0x0A)
   {
      tcpdatalen_out = 0x00;
      j = sizeof(telnet_banner);
	  tcpdatalen_out = j;         //length of the banner message
	  i=0;
	  k=0;
	  while(j > 1)
	  {
	   packet[TCP_data+k] = (telnet_banner[i+1] << 8) | telnet_banner[i];
		 i+=2;
		 ++k;
		 j-=2;
      }
	 while(j > 0)

	 {
	  packet[TCP_data+k] = telnet_banner[i];
	  --j;
	 }	  
   }
   else
      tcpdatalen_out = tcpdatalen_in;
}

//******************************************************************
//*	TCP Function
//*   This function uses TCP protocol to act as a Telnet server on
//*   port 8088 decimal.  The application function is called with
//*   every incoming character.
//******************************************************************
void tcp()
{
	char i,j,k;
	unsigned int temp;

   //assemble the destination port address from the incoming packet
   portaddr = packet[TCP_destport];

   //calculate the length of the data coming in with the packet
   tcpdatalen_in = (swapbytes(packet[ip_pktlen]))-((packet[ip_vers_len] & 0x0F) * 4)-(((packet[TCP_hdrflags] & 0x00FF) >> 4) * 4);

   //If an ACK is received and the destination port address is valid and no data is in the packet
   if(ACK_IN && portaddr == MY_PORT_ADDRESS && tcpdatalen_in == 0x00)
   {
      //assemble the acknowledgment number from the incoming packet
      incoming_ack =make32i(packet[TCP_acknum],packet[TCP_acknum+1]);

      //if the incoming packet is a result of session establishment
      if(flags.synflag)
      {
         //clear the SYN flag
         flags.synflag = 0;

         //the incoming acknowledgment is my new sequence number
         my_seqnum = incoming_ack;

         //send the Telnet server banner
         //limit the character count to 40 decimal
                j = sizeof(telnet_banner);
				tcpdatalen_out = j;         //length of the banner message
				i=0;
				k=0;
				do{
			       packet[TCP_data+k] = (telnet_banner[i+1] << 8) | telnet_banner[i];
				   i+=2;
				   ++k;
				  }while(j-- > 1);
			    do{
				   packet[TCP_data+k] = telnet_banner[i];
				  }while(j-- > 0);

         //expect to get an acknowledgment of the banner message
         expected_ack = my_seqnum + swapbytes(tcpdatalen_out);

         //send the TCP/IP packet
         send_tcp_packet();
      }
   }

   //if an ack is received and the port address is valid and there is data in the incoming packet
   if(ACK_IN && portaddr == MY_PORT_ADDRESS && tcpdatalen_in)
   {
      //receive the data and put it into the incoming data buffer
	  temp = tcpdatalen_in;
	  i=0;
      while(temp > 1)
	  {
	  	aux_data[i] = LOW_BYTE(packet[TCP_data+i]);
		aux_data[i+1] = HIGH_BYTE(packet[TCP_data+i]);
		i+=2;
		temp-=2;
	  }	
	  while(temp > 0)
	  {
	  	aux_data[i] = LOW_BYTE(packet[TCP_data+i]);
		--temp;
	  }	
         //run the TCP application
         application_code();

      //assemble the acknowledgment number from the incoming packet
      incoming_ack =make32i(packet[TCP_acknum],packet[TCP_acknum+1]);

      //check for the number of bytes acknowledged
      //determine how many bytes are outstanding and adjust the outgoing sequence number accordingly
      if(incoming_ack <= expected_ack)
         my_seqnum = expected_ack - (expected_ack - incoming_ack);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲婷婷免费| 国产精品久久久久久妇女6080 | 欧美精品日韩精品| 波多野结衣在线一区| 国产精品全国免费观看高清| 欧美精品一区二区三区高清aⅴ| 欧美日韩一区中文字幕| 欧美午夜电影一区| 欧美精品欧美精品系列| 中文字幕日韩av资源站| 一区二区三区中文在线| 亚洲欧美在线视频观看| 国产美女娇喘av呻吟久久| 国内精品免费在线观看| 国产98色在线|日韩| 91丝袜美女网| 日韩女优电影在线观看| 国产亚洲欧洲一区高清在线观看| 日本aⅴ亚洲精品中文乱码| 激情综合网天天干| 99久久国产综合色|国产精品| 在线视频一区二区三区| 3atv在线一区二区三区| 久久精品一区蜜桃臀影院| 欧美aaaaaa午夜精品| 91精品久久久久久蜜臀| 性感美女久久精品| 国产尤物一区二区| 精品理论电影在线观看| 一区二区三区四区高清精品免费观看 | 日韩亚洲国产中文字幕欧美| 久久久国产一区二区三区四区小说 | 一区二区三区在线免费视频| 99久久国产免费看| 亚洲精品一卡二卡| 国内精品国产成人国产三级粉色| 日韩欧美一区中文| 国内成+人亚洲+欧美+综合在线| 日韩精品一区二区三区在线观看| 免费观看一级特黄欧美大片| 日韩欧美电影一区| 国产一区二区导航在线播放| 久久久久99精品一区| 成人99免费视频| 一区二区三区在线观看欧美| 欧美性一级生活| 秋霞午夜av一区二区三区| 精品动漫一区二区三区在线观看| 国产在线一区二区| 中文字幕成人av| 紧缚奴在线一区二区三区| 国产亚洲一二三区| 91色.com| 九九精品一区二区| 国产精品天干天干在观线| 一本久久综合亚洲鲁鲁五月天| 精品嫩草影院久久| 国产成人综合在线观看| 精品电影一区二区三区| 99久久国产免费看| 五月婷婷综合激情| 欧美日韩精品专区| 亚洲专区一二三| 97精品电影院| 日韩av网站免费在线| 欧美中文字幕一二三区视频| 青青草伊人久久| 亚洲丝袜另类动漫二区| 成人av电影免费在线播放| 午夜精品视频一区| 国产日产欧美一区| 国产精品亚洲午夜一区二区三区 | 久久精工是国产品牌吗| 91.xcao| av中文一区二区三区| 看片的网站亚洲| 一区二区在线观看不卡| 欧美精品一区二区三| 欧美顶级少妇做爰| 99re视频这里只有精品| 国产综合色精品一区二区三区| 亚洲一区av在线| 国产精品视频在线看| 精品久久久久久久一区二区蜜臀| 91福利社在线观看| 丝袜脚交一区二区| 欧美mv日韩mv| 欧美日韩二区三区| 色综合久久中文字幕| 国产成人av一区二区三区在线观看| 午夜精品久久久久久久99樱桃| 亚洲国产激情av| 亚洲精品在线免费观看视频| 欧美日韩精品一二三区| 91久久精品网| 99久久精品免费| a级精品国产片在线观看| 国内精品在线播放| 久久精品国产99久久6| 婷婷一区二区三区| 亚洲国产精品自拍| 久久综合久久综合九色| av成人免费在线| 国产不卡视频一区二区三区| 激情综合色综合久久综合| 麻豆精品新av中文字幕| 欧美韩国日本不卡| 久久久久久久久岛国免费| 欧美精品一区二区久久久| 日韩一区二区高清| 日韩一区二区三区精品视频| 欧美日韩国产一级片| 欧美日韩国产精品自在自线| 欧美日韩一级视频| 欧美一区二区黄色| 91亚洲国产成人精品一区二三| av亚洲精华国产精华精| 成人av网站在线观看免费| 成人免费毛片app| 美洲天堂一区二卡三卡四卡视频| 美腿丝袜在线亚洲一区| 裸体歌舞表演一区二区| 精品中文字幕一区二区| 国产综合久久久久久鬼色 | 日韩电影在线观看电影| 青青草91视频| 国产在线不卡视频| 成人久久18免费网站麻豆| a4yy欧美一区二区三区| 色综合久久久久久久久| 欧美日韩aaa| 久久先锋影音av鲁色资源| 欧美经典一区二区三区| 亚洲丝袜制服诱惑| 午夜精品福利在线| 经典三级一区二区| www.色精品| 91麻豆精品久久久久蜜臀| 欧美r级电影在线观看| 中文字幕一区在线观看视频| 午夜电影一区二区| 国产不卡视频一区二区三区| 色哟哟一区二区三区| 69堂亚洲精品首页| 久久久九九九九| 亚洲午夜电影网| 国产尤物一区二区| 在线免费视频一区二区| 精品国产百合女同互慰| 一区二区三区久久| 激情综合色播激情啊| 日本精品一区二区三区四区的功能| 欧美丰满美乳xxx高潮www| 久久久99精品久久| 亚洲成人777| 成人禁用看黄a在线| 欧美一级午夜免费电影| 亚洲欧洲一区二区在线播放| 日韩电影在线观看网站| 91理论电影在线观看| 日韩欧美激情四射| 一区二区在线免费观看| 国产盗摄一区二区| 日韩欧美激情在线| 婷婷综合五月天| av电影在线观看完整版一区二区| 欧美电视剧免费观看| 亚洲精品国产第一综合99久久| 国模冰冰炮一区二区| 91麻豆精品国产91久久久资源速度 | 亚洲国产欧美一区二区三区丁香婷| 久久99精品久久久久久久久久久久 | 国产亚洲午夜高清国产拍精品| 亚洲成人激情社区| 日本久久电影网| 国产精品无圣光一区二区| 久久av资源网| 欧美一区二区精品在线| 亚洲成a人v欧美综合天堂下载| 99久久久精品| 国产精品国产三级国产aⅴ无密码| 极品少妇xxxx偷拍精品少妇| 555www色欧美视频| 五月开心婷婷久久| 精品视频资源站| 一区二区在线免费| 91女人视频在线观看| 国产精品女主播av| 国产精品亚洲成人| 国产亚洲精品久| 久久99精品国产| 精品国产乱子伦一区| 蜜桃视频免费观看一区| 日韩一区二区三区免费看| 日韩中文字幕1| 日韩欧美第一区| 国模娜娜一区二区三区| 久久精品网站免费观看| 国产91清纯白嫩初高中在线观看| 久久久久久99精品|