lwip之http服務器

通過移植lwip,用嵌入式設備構建一個http服務器。步驟如下:
準備工作:
1、下載一個網頁文件。
2、下載winhex,用winhex打開網頁文件,將網頁文件轉換成c數組。
具體操作如下:
Edit--->Copy All------>C Source
這樣操作後,轉換成的c數組就被複制到剪切板了。
打開一個記事本就可以將數組粘貼進去。
lwip相關操作:
在移植好lwip的系統中,定義
char indexdata1[] ={0x27, 0x74, 0x65, 0x78, 0x74, 0x2F, 0x6A, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
 0x27, 0x25, 0x33, 0x45, 0x25, 0x33, 0x43, 0x2F, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x25, 0x33,
 0x45, 0x22, 0x29, 0x29, 0x3B, 0x0D, 0x0A, 0x3C, 0x2F, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x3E,
..........................................................................
.......................................................................... 
 0x0D, 0x0A, 0x3C, 0x2F, 0x44, 0x49, 0x56, 0x3E, 0x3C, 0x2F, 0x42, 0x4F, 0x44, 0x59, 0x3E, 0x3C
}
char http_html_hdr[] =
"HTTP/1.0 200 OK\r\n\
Content-type: text/html\r\n\r\n";
主體c文件中:
int main()
{
硬件初始化
lwip初始化
IP4_ADDR(&gw, 192,168,1,1);
IP4_ADDR(&ipaddr, 192,168,1,60);
IP4_ADDR(&netmask, 255,255,255,0);
。。。。。。。。。。
。。。。。。。。。。
   struct netconn   *__pstConn, *__pstNewConn;
 __pstConn = netconn_new(NETCONN_TCP);///建立tcp的連接
        ///將建立的連接進行端口綁定
 netconn_bind(__pstConn, NULL, HTTP_PORT);  //HTTP_PORT,80端口
        //開始監聽
 netconn_listen(__pstConn);
 while(1)
 {
          //接收外部來的連接
  __pstNewConn = netconn_accept(__pstConn);
          //
  process_connection(__pstNewConn);
  if (__pstNewConn == NULL)
   continue;
  netconn_delete(__pstNewConn);
               /// OSTimeDly(500);
              
 }
}
編譯,下載。
連接好網線,在ie地址欄輸入192.168.1.60
接着是漫長的等待。。。。。。。。。。。。。。
然後奇蹟出現了:
效果圖如下:
 
也可以通過tcp調試助手測試:
 
連接192.168.1.60的80端口,發送“GET”,tcp調試助手收到一連串的字符(即網頁的源代碼):
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章