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

📄 http.c

📁 嵌入式TCP/IP模块
💻 C
📖 第 1 页 / 共 4 页
字号:

                    Temp[j]=' ';j++;    
                    Temp[j]='S';j++;
                    Temp[j]='e';j++;  
                    Temp[j]='r';j++;    
                    Temp[j]='v';j++;
                    Temp[j]='e';j++;  
                    Temp[j]='r';j++;                                                        
                break;
                case 2:
                    Temp[j]='T';j++;
                    Temp[j]='C';j++;  
                    Temp[j]='P';j++;  

                    Temp[j]=' ';j++;    
                    Temp[j]='C';j++;
                    Temp[j]='l';j++;  
                    Temp[j]='i';j++;    
                    Temp[j]='e';j++;
                    Temp[j]='n';j++;  
                    Temp[j]='t';j++;                  
                break;
                case 3:
                    Temp[j]='U';j++;
                    Temp[j]='D';j++;  
                    Temp[j]='P';j++;                
                break;
                default:
                break;	           
	        }
	       
	     }
		 Temp[j]=NETp[j];
	     j++;      	 
	 }

	 /**********************************/
	 while(j<1400)                //填充服务器IP地址
	 {
	     if(NETp[j]==0x0a)
	     {
	        Temp[j]=NETp[j];
	        j++;
	        break;
	     }   
	     
	     if(NETp[j]=='v' && NETp[j+1]=='a' && NETp[j+2]=='l' && NETp[j+3]=='u' && NETp[j+4]=='e'&& NETp[j+5]=='=')
	     {
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;	        	        	        

	        for(i=0;i<4;i++)
	        {	
	            x=mynetp.remoteip[i];
	            a=x/100;
	            b=x%100/10;
	            c=x%100%10;
	            
	            if(a!=0)
	            {
	               a=hextoASCII(a);	        
	               Temp[j]=a;j++;	            
	               b=hextoASCII(b);	        
	               Temp[j]=b;j++;
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;		            
	            }

	            else if(a==0 && b!=0)
	            {
	               b=hextoASCII(b);	        
	               Temp[j]=b;j++;
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;	 	               	 	                
	            }

	            else	
	            {            
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;
	            }   	 
	            if(i==3)
	               break;  
	            Temp[j]='.';j++;	                      
	         }
	     }
	     else
	     {
	       Temp[j]=NETp[j];
	       j++;
	     }  
	 } 	    	    	    	    
	 /****************************************************/
	 while(j<1400)    //填充端服务器端口号   
	 {
	     if(NETp[j]==0x0a)
	     {
	        Temp[j]=NETp[j];
	        j++;
	        break;
	     }   
	     
	     if(NETp[j]=='v' && NETp[j+1]=='a' && NETp[j+2]=='l' && NETp[j+3]=='u' && NETp[j+4]=='e'&& NETp[j+5]=='=')
	     {
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;
	        Temp[j]=NETp[j];j++;	
	        
	        a=mynetp.remoteport/10000;    
	        b=mynetp.remoteport%10000/1000;
	        c=mynetp.remoteport%10000%1000/100;
	        d=mynetp.remoteport%10000%1000%100/10;
	        e=mynetp.remoteport%10000%1000%100%10;
	        
	        if(a!=0)
	        {
	               a=hextoASCII(a);	        
	               Temp[j]=a;j++;	            
	               b=hextoASCII(b);	        
	               Temp[j]=b;j++;
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;	
	               d=hextoASCII(d);	        
	               Temp[j]=d;j++;
	               e=hextoASCII(e);	        
	               Temp[j]=e;j++;	               	            
	        }

	        else  if(a==0 && b!=0)
	        {
	               b=hextoASCII(b);	        
	               Temp[j]=b;j++;
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;	
	               d=hextoASCII(d);	        
	               Temp[j]=d;j++;
	               e=hextoASCII(e);	        
	               Temp[j]=e;j++;	  	 	               	 	                
	        }
	        else if(a==0 && b==0&& c!=0)
	        {
	               c=hextoASCII(c);	        
	               Temp[j]=c;j++;	
	               d=hextoASCII(d);	        
	               Temp[j]=d;j++;
	               e=hextoASCII(e);	        
	               Temp[j]=e;j++;	        
	        }
	        
	        else if(a==0 && b==0&& c==0&&d!=0)
	        {
	               d=hextoASCII(d);	        
	               Temp[j]=d;j++;
	               e=hextoASCII(e);	        
	               Temp[j]=e;j++;	        
	        }	
	        else
	        {
	               e=hextoASCII(e);	        
	               Temp[j]=e;j++;	        
	        }        

	     }
	     else
	     {
	       Temp[j]=NETp[j];
	       j++;
	     }  	 
	 }

	    	 
	 send( 0,&Temp[0] ,j, 0 );              //发送网络参数
	 if(ReceiveCheck()==FALSE)
	    return;	 
	
	
	/*-----------------------------------------------------------*/    
	 j=0;
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }
	 
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }	 
	 
 
	 while(j<1400)   //填充波特率
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }
	     if(COMp[j]=='s' && COMp[j+1]=='e' && COMp[j+2]=='l' && COMp[j+3]=='e' && COMp[j+4]=='c'
	     && COMp[j+5]=='t'&& COMp[j+6]=='e'&& COMp[j+7]=='d'&& COMp[j+8]=='>')
	     {
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;	
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        
	        i=5;
	        B=0xf00000;

            while(i)
            {
	            if(mynetp.baudrate&B)
	            {
	                while(i)
	                {
	                   baudrate=mynetp.baudrate&B;
	                   baudrate>>=i*4;
	                   B>>=4;
	                   a=baudrate;
	                   a+=0x30;
	                   Temp[j]=a;j++;	
	                   i--;
	                }
	                if(i==0)
	                {
	                   baudrate=mynetp.baudrate&B;
	                   a=baudrate;
	                   a+=0x30;
	                   Temp[j]=a;j++;	                
	                }    	                
	            }
	        if(i==0)
	            break;    
	        B>>=4;	            
	        i--;    
	        }
	        	        	        	       
	     }
		 Temp[j]=COMp[j];
	     j++;      	 
	 } 


	 while(j<1400)   //填充bit
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }
	     if(COMp[j]=='s' && COMp[j+1]=='e' && COMp[j+2]=='l' && COMp[j+3]=='e' && COMp[j+4]=='c'
	     && COMp[j+5]=='t'&& COMp[j+6]=='e'&& COMp[j+7]=='d'&& COMp[j+8]=='>')
	     {
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;	
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        
	        Temp[j]=mynetp.bit+0x30;j++;
         }
		 Temp[j]=COMp[j];
	     j++;      	 
	 } 	 
	 
	 while(j<1400)   //填充 parity
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }
	     if(COMp[j]=='s' && COMp[j+1]=='e' && COMp[j+2]=='l' && COMp[j+3]=='e' && COMp[j+4]=='c'
	     && COMp[j+5]=='t'&& COMp[j+6]=='e'&& COMp[j+7]=='d'&& COMp[j+8]=='>')
	     {
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;	
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        switch(mynetp.parity)
	        { 
                case 0:
                    Temp[j]='N';j++;
                    Temp[j]='o';j++;  
                    Temp[j]='n';j++;  
                    Temp[j]='e';j++;                
                    break;	        
	            case 1:
                    Temp[j]='O';j++;
                    Temp[j]='d';j++;  
                    Temp[j]='d';j++;                                                        
                    break;
                case 2:
                    Temp[j]='E';j++;
                    Temp[j]='v';j++;  
                    Temp[j]='e';j++;  
                    Temp[j]='n';j++;                
                    break;                                            
                default:
                    break;	           
	        }
	       
	     }
		 Temp[j]=COMp[j];
	     j++;      	 
	 }	
	 
	 while(j<1400)   //填充stop bit
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }
	     if(COMp[j]=='s' && COMp[j+1]=='e' && COMp[j+2]=='l' && COMp[j+3]=='e' && COMp[j+4]=='c'
	     && COMp[j+5]=='t'&& COMp[j+6]=='e'&& COMp[j+7]=='d'&& COMp[j+8]=='>')
	     {
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;	
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        Temp[j]=COMp[j];j++;
	        switch(mynetp.stopbit)
	        { 
	            case 1:
                    Temp[j]='1';j++;
                    Temp[j]='.';j++;  
                    Temp[j]='0';j++;                                                        
                break;
                case 2:
                    Temp[j]='1';j++;
                    Temp[j]='.';j++;  
                    Temp[j]='5';j++;                
                break;
                default:
                break;	           
	        }
	       
	     }
		 Temp[j]=COMp[j];
	     j++;      	 
	 }		 
	  
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }
	 
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }	
	 	   
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }
	 
	 while(j<1400)    
	 {
	     if(COMp[j]==0x0a)
	     {
	        Temp[j]=COMp[j];
	        j++;
	        break;
	     }	 
		 Temp[j]=COMp[j];
	     j++;  	     
	       
	 }	
	 	    
	 send( 0,&Temp[0] ,j, 0 );   
	 if(ReceiveCheck()==FALSE)
	    return;
}

/***************************************************/
uint8 hextoASCII (uint8 i)
{
	  if(i>=0x0a)
	     i+=0x37;
	  else
	     i+=0x30; 
	  return (i);       
}

⌨️ 快捷键说明

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