通过移植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调试助手收到一连串的字符(即网页的源代码):
winhex软件:
阅读(12669) | 评论(2) | 转发(0) |