1.前言

你已经编译lwIP协议栈在你的目标平台上,并且网络驱动正常工作。你可以ping你的设备。

干得好,为你感到骄傲。虽然一个设备可以响应ping,但并不能算一个完整的应用。

现在你可以通过网络接口来实际做点东西。从哪里开始呢?你可以通过他人的例子来学习lwIP应用编程。

你可以在如下的地方找到一些应用例程,该例程被参与者所维护。

lwIP source code repository site.

应用工程如下所示:

还有其他更多,不一一列举了

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 应用的默认网页如下所示:

LwIP Application Developers Manual8---Sample lwIP applications的更多相关文章

  1. LwIP Application Developers Manual1---介绍

    1.前言 本文主要是对LwIP Application Developers Manual的翻译 2.读者(应用开发手册的读者) 谁适合读这份手册 网络应用的开发者 想了解lwIP的网络应用开发者 阅 ...

  2. LwIP Application Developers Manual2---Protocols概览

    1.前言 本文是对LwIP Application Developers Manual的翻译 lwIP是模块化的并支持广泛的协议,这些大部分协议可以被裁减从而减小代码的尺寸 2.协议概览 链路层和网络 ...

  3. LwIP Application Developers Manual7---lwIP with or without an operating system

    1.前言 最近有一些讨论关于lwIP如何在单机的环境(比如,没有一个多线程的操作系统)使用. 本文的目的就是描述lwIP如何在无多线程操作系统或有多线程操作系统环境中运行 2.lwIP单线程内核 2. ...

  4. LwIP Application Developers Manual5---高层协议之DNS

    1.前言 lwIP提供一个基本的DNS客户端(1.3.0后引进),通过使用DNS(Domain Name System)协议来允许应用程序解决主机名到地址的转换. 在文件lwipopts.h里面定义L ...

  5. LwIP Application Developers Manual9---LwIP and multithreading

    1.前言 lwIP的内核并不是线程安全的.如果我们必须在多线程环境里使用lwIP,那么我们必须使用“upper”API层的函数(netconn或sockets).当使用raw API时,你需要自己保护 ...

  6. LwIP Application Developers Manual5---高层协议之DHCP,AUTOIP,SNMP,PPP

    1.前言 本文主要讲述高层协议,包括DHCP 2.DHCP 2.1 从应用的角度看DHCP 你必须确保在编译和链接时使能DHCP,可通过在文件lwipopts.h里面定义LWIP_DHCP选项,该选项 ...

  7. LwIP Application Developers Manual4---传输层之UDP、TCP

    1.前言 本文主要讲解传输层协议UDP TCP 2.UDP 2.1 UDP from an application perspective 2.2 UDP support history in lwI ...

  8. LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP

    1.前言 本文主要讲述链路层和网络层的协议IPV6,ICMP 2.IPV6 2.1 IPV6特性 IPv6是IPv4的更新.其最显著的差别在于地址空间由32位转换成128位 2.2 从应用的角度看IP ...

  9. LwIP Application Developers Manual12---Configuring lwIP

    1.前言 2.LwIP makefiles With minimal features C_SOURCES = \ src/api/err.c \ src/core/init.c \ src/core ...

随机推荐

  1. C#设计模式(6)——原型模式

    1.原型模式介绍 在软件系统开发中,有时候会遇到这样的情况:我们需要用到多个相同实例,最简单直接的方法是通过多次调用new方法来创建相同的实例.如下: Person person=}; Person ...

  2. jQuery使用(八):运动方法

    show().hide().toggle() 参数:null或(duration,easing,callblack) fadeIn().fadeout().fadeToggle().fadeTo() ...

  3. Shell编程(四)Shell变量

    1. 自定义变量(仅在当前shell生效) 1.1 定义变量 #!/usr/bin/bash ip=115.239.210.27 if ping -c1 $ip &>/dev/null ...

  4. vue filter过滤器简单应用

    vue中过滤器,用于一些常见的文本格式化,用 | 来操作. 过滤器可以用在两个地方: 1.在{{}}双花括号中插入值 2.v-bind表达式中使用 <!-- 在双花括号中 --> {{ m ...

  5. 一个awk if 嵌套 if 的脚本

    [root@makeISO sjx]# cat sex.sh #!/bin/bash # 统计如下内容,并输出结果 # (男职工未婚数量/男员工整体数量)(女员工未婚数量/女员工整体数量) echo ...

  6. SQL Server进阶(十)事务和并发处理

    1 https://www.cnblogs.com/edisonchou/p/6129717.html

  7. SQL Server 2016 附加数据库提示创建文件失败如何解决

    1.右键Microsoft SQL Server Management Studio2.以管理员方式运行

  8. C# RestoreDirectory

    OpenFileDialog与SaveFileDialog都有RestoreDirectory属性,这个属性默认是false,打开一 个文件后,那么系统默认目录就会指向刚才打开的文件.如果设为true ...

  9. Windows 常用的 CMD 命令

    Ø  简介 本文主要记录 Windows 下一些常用的 CMD 命令,俗话说好记性不如烂笔头. 1.   help 查看 cmd 命令帮助信息(包括所有的 cmd 命令) 2.   设置 cmd 进入 ...

  10. 【python小练】0000

    第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 from PIL import Image, ImageDraw, Im ...