问题标签 [lwip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
13476 浏览

c - LWIP + RTOS - 如何避免 netconn 永远阻塞线程?

当调用LwIP netconn_accept()netconn_recv()函数时,如果我们使用的是 RTOS,它将阻塞线程并等待连接,直到超时或永远,取决于LWIP_SO_RCVTIME0. 超时持续时间等于SYS_ARCH_TIMEOUT.

在核心包含部分LwIP堆栈SYS_ARCH_TIMEOUT中定义为0xffffffff,所以我认为它不会被更改。

实际上,我希望它检查是否建立了连接,如果没有,则继续线程。但是,如果我打电话netconn_accept(),它只会阻塞线程并永远等待(或很长时间)......我不想改变定义值,SYS_ARCH_TIMEOUT因为我在不同情况下需要不同的超时......

这样做的好方法是什么?谢谢。

0 投票
4 回答
8071 浏览

c - 轻量级 IP:缓冲区未释放

我正在使用一个名为lwip的 TCP/IP 堆栈。我在下面实现了一个发送数据包的函数,灵感来自一个类似的接收数据包的回调函数。

每次收到数据包时,我都会使用该pbuf_alloc函数创建一个缓冲区。然后,我使用udp_sendto. 最后,我使用pbuf_free. (见下面的代码。)

由于某种原因,pbuf_free没有释放缓冲区。n(我在数据包之后出现缓冲区溢出,n池大小在哪里。)lwip wiki警告说:

网络驱动程序也可能不会假定 pbuf 内存在调用 pbuf_free 时实际上已被释放。

如何强制pbuf_free释放缓冲区?如何避免缓冲区溢出?

(下面是我的实现。)

0 投票
4 回答
1870 浏览

server-side-includes - html表单内的SSI标签?

我有一个简单的 HTML 表单,我想在其中使用 SSI 标记数据预先填充字段。这就是我所做的:

结果有些令人失望:

标签以表格形式出现! 粗鲁!

没关系,这些 IP 值显示为 32 位整数,我稍后会处理。困扰我的是标签出现在表单中。有人能告诉我为什么在表单中,值被附加到标签而不是替换标签吗?

这发生在运行 LWIP 堆栈的 TI LM3S9D96 MCU 上。

0 投票
1 回答
1528 浏览

security - Stellaris 32 位微控制器上的 lwIP - 安全登录

我希望使用我的 Stellaris LM3S8962 微控制器作为互联网和一堆传感器之间的桥梁。我将使用 Zigbee 节点进行从传感器到微控制器的通信。我已经能够使用 lwIP TCP/IP 堆栈(用于 LM3S8962)来访问存储在控制器闪存中的 HTML 页面。

现在,我想为此添加一个安全登录系统。我基本上想要的是 - 当我在浏览器中输入控制器的 IP 时,它应该提示我输入用户名和密码。我想使用 lwIP TCP/IP 堆栈使这个系统尽可能安全。

仅供参考,堆栈不支持 PHP 或任何其他脚本。支持 CGI 功能(在 C 中),但我不知道如何实现安全部分。请指导。

0 投票
1 回答
1208 浏览

arm - 将项目从 TrueSTUDIO 切换到 CrossWorks 时 memcpy 出现硬故障

我不幸被要求使用 CrossWorks 为 STM32F4 开发板进行开发,而我遇到了一个只有在使用 CrossWorks 构建和运行项目时才会出现的问题。

我正在使用 LwIP 创建一个 UDP 服务器,当我使用 TrueSTUDIO 时它工作得很好。但是,当我在 CrossWorks 下运行它时,ethernetif_input() 中出现了一个硬故障,它在数据包准备好读取时调用。它失败的具体点是它在数据包缓冲区之间移动数据包信息时调用 memcpy() 。

我不知道发生了什么变化——它是完全相同的代码,为相同的目标而构建,但它在 CrossWorks 中中断了。我希望有人能深入了解这个问题的任何部分……如果您对此有任何想法,那就太好了。

谢谢,如果您需要我的任何详细信息,请告诉我!

0 投票
0 回答
532 浏览

broadcast - lwip 支持多播或广播

在 LWIP 中,确认它支持多播或广播,但如果数据或数据包是由发送方使用广播发送的,会发生什么?ACK有什么机制吗?是这样的话,那么在发送方就会出现内爆问题。请帮助我找到问题,即它遵循 ACK 以确保可靠性或没有 ACK 机制和可靠性。该协议将如何进行拥塞控制?

0 投票
1 回答
2142 浏览

c - 将 UDP 包发送到 NTP 服务器并接收时间(lwip、Cortex M3、Stellaris LM3S6965 评估板)

我正在使用 Cortex M3、Stellaris® LM3S6965 评估板。我想在我的 oled 屏幕上显示 NTP 服务器的时间。首先,我想得到 NTP 服务器的回复。我搜索了服务器与 UDP 一起使用。它给了我一个时间戳。我正在使用 LWIP 库。

我正在尝试向服务器发送一个 UDP 数据包,我想在显示器上显示收到的数据包数据(时间戳)..

所以我想我必须向 TNP 服务器发送一个 udp 包并接收时间戳。

但不知何故它不起作用。我希望你们能帮我找到解决办法。

编辑:

我还在这里找到了有关 NTP 的更多信息

更新程序:

0 投票
3 回答
28817 浏览

udp - NTP 请求包

我试图弄清楚我需要在 NTP 请求包中发送(客户端)什么以从服务器检索 NTP 包。我正在使用 Cortex M3 上的 LWIP,Stellaris LM3S6965

我知道我将收到一个 UDP 标头,然后是具有不同时间戳的 NTP 协议以消除延迟。我可能需要制作一个 UDP 标头,但我需要添加什么作为数据?

线鲨图片: 在此处输入图像描述

我希望你们能帮助我。

0 投票
3 回答
9131 浏览

c - 发送 UDP 包(lwip、Cortex M3、Stellaris LM3S6965 评估板)

我正在使用 Cortex M3、Stellaris® LM3S6965 评估板。我正在尝试将 UDP 数据包发送到 NTP 服务器。我一直在寻找。

但它不起作用。有人能帮我吗?我认为回调函数没有被调用。

程序完整代码: http: //codepaste.net/uuy8sg

0 投票
1 回答
2269 浏览

c - 带有 lwip 的网络服务器(Cortex M3、Stellaris LM3S6965 评估板)

我正在尝试制作简单的网络服务器,所以如果我在浏览器上搜索并输入设备的 ip,我会看到一个网页。我找到了这个维基页面

我已按照步骤操作,但在构建时出现错误。

我已包含链接文件夹"C:\stellarisware\third_party\lwip-1.3.2\apps\httpserver_raw"以获取 httpd.c 等文件

我添加了httpd_init(),但在构建时出现此错误。

如果我查看这些文件,它就在其中:

这就是我的目录的样子:

在此处输入图像描述

以下是来自网络服务器的源文件:下载

这是我的 main.c,在第 270 行我调用了 httpd_init(); 下载