lwip之http伺服器
阿新 • • 發佈:2019-01-31
準備工作:
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除錯助手收到一連串的字元(即網頁的原始碼):
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 接著是漫長的等待。。。。。。。。。。。。。。 然後奇蹟出現了: 效果圖如下: