LwIP Application Developers Manual8---Sample lwIP applications
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 应用的默认网页如下所示:

LwIP Application Developers Manual8---Sample lwIP applications的更多相关文章
- LwIP Application Developers Manual1---介绍
1.前言 本文主要是对LwIP Application Developers Manual的翻译 2.读者(应用开发手册的读者) 谁适合读这份手册 网络应用的开发者 想了解lwIP的网络应用开发者 阅 ...
- LwIP Application Developers Manual2---Protocols概览
1.前言 本文是对LwIP Application Developers Manual的翻译 lwIP是模块化的并支持广泛的协议,这些大部分协议可以被裁减从而减小代码的尺寸 2.协议概览 链路层和网络 ...
- LwIP Application Developers Manual7---lwIP with or without an operating system
1.前言 最近有一些讨论关于lwIP如何在单机的环境(比如,没有一个多线程的操作系统)使用. 本文的目的就是描述lwIP如何在无多线程操作系统或有多线程操作系统环境中运行 2.lwIP单线程内核 2. ...
- LwIP Application Developers Manual5---高层协议之DNS
1.前言 lwIP提供一个基本的DNS客户端(1.3.0后引进),通过使用DNS(Domain Name System)协议来允许应用程序解决主机名到地址的转换. 在文件lwipopts.h里面定义L ...
- LwIP Application Developers Manual9---LwIP and multithreading
1.前言 lwIP的内核并不是线程安全的.如果我们必须在多线程环境里使用lwIP,那么我们必须使用“upper”API层的函数(netconn或sockets).当使用raw API时,你需要自己保护 ...
- LwIP Application Developers Manual5---高层协议之DHCP,AUTOIP,SNMP,PPP
1.前言 本文主要讲述高层协议,包括DHCP 2.DHCP 2.1 从应用的角度看DHCP 你必须确保在编译和链接时使能DHCP,可通过在文件lwipopts.h里面定义LWIP_DHCP选项,该选项 ...
- 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 ...
- LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP
1.前言 本文主要讲述链路层和网络层的协议IPV6,ICMP 2.IPV6 2.1 IPV6特性 IPv6是IPv4的更新.其最显著的差别在于地址空间由32位转换成128位 2.2 从应用的角度看IP ...
- 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 ...
随机推荐
- fiddler模拟返回
先把正常的请求响应报文保存为文件,操作方法为选中对应请求>右键> save >reponse>entire response 点击改请求,点击右侧autoresponder,点 ...
- ansbile Tags && Block
Tags 官网示例:https://docs.ansible.com/ansible/2.6/user_guide/playbooks_tags.html 编写执行playbook的时候,每次修改完y ...
- 阅读:ECMAScript 6 入门(1)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 前言 学了 ...
- Java中的AES加解密
直接上代码,Base64使用的是Java8的方法,如没有,替换即可 KEY:即密码 IV:即偏移量,可自订,十六位 加密方式:AES/CBC/PKCS5Padding,128位加密 如果想用256位和 ...
- Git 命令解释优秀博文转摘
git rebase http://blog.csdn.net/hudashi/article/details/7664631 git merge git reset http://www.cnblo ...
- luogu 3396 哈希冲突 奇怪的根号
这个题嘛开始一看实在想不出来有什么数据结构/算法可以乱搞,于是果断写了个朴素n方暴力,然后就发现luogu竟然有91分 这数据啊,也是醉了.. 想着优化优化能不能暴力卡过最后一个T掉的点,然鹅发现无耶 ...
- 割点判断+luogu 3469 POI2008 BLO
1.根节点,有2棵及以上子树 2.非根节点,有子节点dfn[u]<=low[v] #include <bits/stdc++.h> #define N 1000050 using n ...
- 【noip 2011】提高组Day1T3.Mayan游戏
Description Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是 ...
- python DB-API
python为数据库访问开发了统一的API(Application Programming Interface,应用程序编程接口):DB-API. MySQL的实现叫做MySQLdb,Oracle实现 ...
- Docker(四)Dockerfile入门
摘自: https://mp.weixin.qq.com/s/Im4axroExgrJoj05g_TQ-w 一.Docker的工作流程 Docker组件协作运行容器可以分为以下几个过程: Docker ...