1.前言
你已经编译lwIP协议栈在你的目标平台上,并且网络驱动正常工作。你可以ping你的设备。
干得好,为你感到骄傲。虽然一个设备可以响应ping,但并不能算一个完整的应用。
现在你可以通过网络接口来实际做点东西。从哪里开始呢?你可以通过他人的例子来学习lwIP应用编程。
你可以在如下的地方找到一些应用例程,该例程被参与者所维护。
lwIP source code repository site.
应用工程如下所示:
- Character Generator application (chargen)
- TCP 'echo' application (tcpecho, tcpecho_raw)
- Simple Web server (httpserver, httpserver_raw)
- Private MIB Generator
还有其他更多,不一一列举了
2.Web服务器例程
在lwIP源代码发布仓库里,包含了一些应用例程,其中一个是web服务器。
Web服务器有2个版本,一个是使用lwIP sockets API(httpserver),另一个使用原始API(httpserver_raw)来实现。
lwIP应用程序可以利用ROM里的文件系统(以C代码实现)来提供网页数据(html、jpg文件,等等)。
为了使用这个例程,你的工程要包含httpd.c、fs.c和fsdata.c还有相关的头文件。
在调用完lwip_init()来初始化协议栈后,你要调用httpd_init()来初始化守护线程。
如果所有都正常工作的话,在浏览器里面输入你设备的IP地址,将会显示文件系统提供的首页信息。
NOTE:文件系统并不是标准的,它创建图像文件并将它作为软件的一部分。使用一个标准的文件系统需要大量的改写httpd.c文件。
你可以定制web页面,通过使用makefsdata程序来产生你的文件系统。
C源文件包含了文件系统的内容,该文件系统的内容通过一个名为‘makefsdata’的程序来产生,该程序被维护并当作这个例程的一部分。
makefsdata程序也有Perl脚本版本,这样你就可以不用编译代码了,但该版本并没有包括所有C版本的特性。Httpserver 应用的默认网页如下所示: