从 lwIP-2.0.0 开始,lwIP 开发者将一些核心应用从 contrib
仓库移动到 lwIP
仓库的 src/apps
文件夹。
对比版本 lwIP-1.4.1
和 lwIP-2.1.2
的 src
文件夹内容,可以发现 lwIP 2.1.2
版本多了一个 apps
文件夹。
最开始,也就是 2015 年 10 月 8 日,apps
文件夹下只有一个应用 sntp
客户端,这是一个简单网络时间协议,可以实现与授时服务器对时的功能。
在 lwIP 1.4.1
版本时,sntp
客户端还位于 contrib-1.4.1\apps
文件夹下。
新版本的 sntp 客户端程序有了少许升级:新的版本通过配置可以使用到 2104 年,而 lwIP 1.4.1
版本只能使用到 2036 年 2 月 7 日。
一天之后,也就是 10 月 9 日,Simon Goldschmidt
为 APP 头文件指定了规则:必须有一个 xxx.h
和一个可选的 xxx_opts.h
。比如 sntp
应用就有一个 sntp.h
和一个 sntp_opts.h
头文件。这是模块程序的惯用套路,xxx_opts.h
文件用于保存模块的默认配置,如果默认配置不能满足用户的需求,可以在 lwipops.h
中定义同名宏来覆盖默认配置。
还是在这一天,apps
文件夹下添加了 lwiperf
应用。这是一个简单的性能测试客户端/服务器,配合上位机软件 iPerf2
可测试运行 lwIP
设备的最大传输速度和带宽。目前仅能测试 TCP
。
还是在这一天,apps
文件夹下添加了 netbiosns
应用。这是NetBIOS 名称服务器的示例实现。
2015年11月13日,apps
文件夹下添加了 SNMP
应用。在这之前, SNMP
都是内核的一部分(路径 lwip-1.4.1\src\core\snmp
),现在 Dirk Ziegelmeier
将它彻底地从内核剥离出来,成为一个应用。
2015 年 11 月 16 日,apps
文件夹下添加了 http
应用。之前位于contrib-1.4.1\apps
文件夹下。
2016 年 8 月 14 日,apps
文件夹下添加了 mNDS
应用。
2016 年 10 月 3 日,apps
文件夹下添加了 tftp
服务器应用。
2016 年 12 月 20 日, apps
文件夹下添加了 MQTT
客户端应用。
2017 年 3 月 23 日, apps
文件夹下添加了 altcp_tls
应用,这个应用需要 mbedtls
库,可以实现 tcp 安全连接(通过加密)。
2017 年 3 月 29 日, apps
文件夹下添加了 smtp
客户端应用。之前位于contrib-1.4.1\apps
文件夹下。
今天是 2023 年 5 月,lwIP 仍没有更新 apps
内容。