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

📄 httpd.c

📁 c8051f020_uip1.0.rar
💻 C
字号:
//*****************************************************************************// HTTP server.// Adam Dunkels <adam@dunkels.com>//// Copyright (c) 2001, Adam Dunkels.// All rights reserved. //// Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright //    notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright //    notice, this list of conditions and the following disclaimer in the //    documentation and/or other materials provided with the distribution. // 3. The name of the author may not be used to endorse or promote//    products derived from this software without specific prior//    written permission.  //// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE// ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  //// This file is part of the uIP TCP/IP stack.////*****************************************************************************#include "uip.h"#include "httpd.h"
#include "string.h"	   //包含NULL
#include "pt.h"//*****************************************************************************//// Macro for easy access to buffer data////*****************************************************************************#define BUF_APPDATA ((u8_t *)uip_appdata)//*****************************************************************************//// Definitions of HTTP Server States////*****************************************************************************#define HTTP_NOGET      0#define HTTP_FILE       1#define HTTP_TEXT       2#define HTTP_FUNC       3#define HTTP_END        4//*****************************************************************************//// Global for keeping up with web server state.////*****************************************************************************struct httpd_state *hs;u16_t pass_flag;
static struct uip_udp_conn *udp_set_conn = NULL;//*****************************************************************************voidhttpd_init(void){    //    // Listen to port 80.    // 
	    uip_listen(HTONS(80));}
//*****************************************************************************
//*****************************************************************************//// HTTP Application Callback Function////*****************************************************************************voidhttpd_appcall(void){
        
	    hs = (struct httpd_state *)&(uip_conn->appstate);

	    if(uip_connected())
	    {
	      hs->count = 0;
	      uip_send(BUF_APPDATA,0);
		  return;
	    }

		if(uip_newdata()||uip_rexmit())
		{
		    if(uip_datalen()>0)
			{
			   if((BUF_APPDATA[0]=='p')&&\
				    (BUF_APPDATA[1]=='a')&&\
			          (BUF_APPDATA[2]=='s')&&\
			            (BUF_APPDATA[3]=='s'))
			   {
			       pass_flag=1;
			   }
			}
			else
			{
			  ;
			}
		}
	
	    if (uip_poll())			 
	    {
			  if(pass_flag)
			  {
			    pass_flag=0;
	   	        BUF_APPDATA="Adam Dunkels <adam@dunkels.com> Copyright (c) 2001, Adam Dunkels. All rights reserved.";
		        uip_len=sizeof("Adam Dunkels <adam@dunkels.com> Copyright (c) 2001, Adam Dunkels. All rights reserved.");
			    hs->count = 0;
			    uip_send(BUF_APPDATA,uip_len);
			    return;
			  }
	    }
	    
	     	  }





⌨️ 快捷键说明

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