问题标签 [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 投票
0 回答
615 浏览

http - 使用 lwip 的 HTTP GET 中途停止

我使用 lwip 作为客户端从服务器执行 HTTP GET。我希望收到的文件大约是 75kB。我正确地得到了第一个〜9kB,但没有更多的数据到达。每个到达堆栈的数据包都被正确地确认。

为了缩短一长段代码,我将 netconn 接口与以下命令一起使用。在几个数据包到达之前没有给出错误,在此之后 netconn_recv 开始给出超时,直到大约 15 分钟后服务器发送一个数据包以关闭连接(这告诉我连接至少在某种意义上仍在工作)。

谁能给我任何下一步尝试的提示?谢谢

0 投票
1 回答
188 浏览

android - 安卓 NDK。读取/写入未对齐的地址

我正在为 Android移植 lwIP,并且有一个步骤说:

如果您的处理器无法读取/写入未对齐的地址,那么您需要告诉编译器数据可能未对齐,并且它必须生成多个字节或字加载/存储才能访问它。

现在我想知道如何在头文件中写入,“如果您可以读取/写入未对齐的地址,请不要做任何事情。否则,请使用对齐魔法。”

0 投票
0 回答
638 浏览

beagleboneblack - 使用 LWIP 和 StarterWare 的 Beaglebone 数据包嗅探器

我一直在做一个项目,我计划使用 BeagleBone Black 作为本地网络的数据包嗅探器(和记录器)。我已经使用了 Starterware 示例 echo_server 和 http_server,并且它们工作正常。但是,由于不太熟悉 TCP/IP 的内部操作,我不知道如何修改现有的 Starterware 代码库来实现混杂模式数据包嗅探。是否有人对 LWIP 的此端口可能或可能不适用于预期用途有任何建议或理由?谢谢,

0 投票
1 回答
3581 浏览

udp - FreeRTOS + LWIP -UDP 数据传输

我对 lwip 堆栈有点陌生。我正在尝试通过 UDP 协议将一些数据从我的开发板发送到我的电脑。并在他们两个之间使用以太网电缆。

我为我的服务器(源板)提供了一个 IP 地址,即 192.168.1.75:88。而我电脑的ip地址是192.168.1.2:90。当我设置这个配置并运行程序时,我无法用wireshark嗅探任何东西,我的意思是根本没有udp包交换。但是当我将所有目标地址更改为 255.255.255.255 或 0.0.0.0 时,我可以嗅探一些包。

为什么我不能将 udp 包发送到我想要的 ip 地址?

主程序

发送UDP任务

0 投票
1 回答
952 浏览

c - 无法使用 lwIP Raw TCP 连接接收对 HTTP 请求的多个响应

当我尝试将数据排入队列以发送到服务器时,我无法接收对多个 HTTP 请求的响应。

我们能够建立与服务器的连接,并使用 tcp_write() 函数在 connected_callback() 函数内立即发出 HTTP 请求(与服务器建立连接后立即调用)。但是,如果我尝试使用以下语法生成两个或更多 HTTP 请求:

我设法将所有数据发送到服务器,但我从未收到第二个 HTTP 请求的任何数据。我设法打印了第一个请求的有效负载(JSON 文件),但我从未设法接收到 .dee 文件的任何内容。是否有任何特定说明将 HTTP 请求与 lwIP 一起排入队列,或者我错过了什么?

如果您需要更多代码来准确分析我的问题,请随时这样说。

谢谢!

0 投票
1 回答
790 浏览

tcp - lwip tcp/ip 校验和错误

LWIP:SSI 输出长度可能会导致 TCP/IP 校验和错误

我正在使用在 ARM LPC4357(LPCOpen 2.1.12,日期 5/15/2014)上运行的 LWIP 1.4.1。我正在使用 httpserver_raw 并添加了一些 SSI 处理程序。

我发现系统对包含标签的行的大小和 SSI 处理程序输出的字节数都很敏感。标签包含在输出中。展开标签时:

(标签前两个空格,论坛格式化!)当标签扩展为 1、3、5、7 等字符时,浏览器无法接收输出 & Wireshark 报告校验和错误。当标签扩展为 2、4、6、8 等字符时,浏览器会收到输出和 Wireshark 报告 OK。

如果我从标签之前删除一个空格,那么情况就会逆转。此外,如果标签大于 129 个字符(怀疑为 122),则输出始终正常(尚未发现故障)。

当 SSI 输出 >=129 字节时,将调用长度为 122(标题和标签)、122(SSI 的初始部分)和 7(SSI 的剩余部分)的 http_write() 函数。拥有 122 的第二个 tcp_write() 似乎可以解决校验和问题。(将 SSI 输出拆分为段本身就是一件奇怪的事情。以最多 122 个块的形式发送似乎是由直到标签的资源文件的大小驱动的)。

我已经使用 UART printf() 和 Wireshark 检查了 SSI 输出,一切似乎都是正确的,输出中没有损坏。http_write() 长度与输出一样正确。

我已经跟踪到 tcp_write() ,此时我开始怀疑自己;tcp_write() 肯定不能被破坏吗?有没有人在嵌入式目标或确实 tcp_write() 上使用过 LWIP SSI?

0 投票
2 回答
4590 浏览

snmp - 允许使用 LWIP 从 SNMP 代理发送的八位字节字符串的最大长度

我正在尝试使用 Xilinx SDK 中的 LWIP 库在设备上实现 SNMP 代理。

我成功实现了代理并让代理在我的设备上运行以响应命令(snmpget、snmpset、snmpwalk)。

但是,如果 OID 必须返回长度大于 255 的八位字节字符串,则代理的行为很可疑。当我尝试传递长度 > 255 的八位字节字符串时,我没有收到关于该 oid 的数据,并且代理在此之后断开连接,并且不会响应任何进一步的命令。

长度<255的snmp八位字节字符串可以正确接收,没有问题(没有问题)。我想知道LWIP SNMP代理对八位字节字符串的大小有限制吗??

0 投票
1 回答
1361 浏览

tcp - 流量控制实现——如何

我正在使用 TCP/IP(使用 FreeRTOS + LwiP)发送 1k 数据。从文档中我了解到 TCP/IP 协议在其堆栈本身内部有其流量控制,但这种流量控制取决于网络缓冲区。我不确定如何在下面描述的我的场景中处理这个问题。

  1. 使用 TCP/IP 从 wifi 接收 1k 大小的数据(此数据速率为 20Mb/s)

  2. 接收到的Wifi数据放入一个10k size10块的队列中,每个块的大小为1K

  3. 从队列中取出每个块并以 1Mb/s 的较低速率发送到另一个接口

那么在这种情况下,我是否必须在来自 wifi <-> 队列的数据之间手动实现流控制?我怎样才能做到这一点?

0 投票
0 回答
160 浏览

freebsd - 如何在freebsd上实现lwip?

我试图在freebsd上拥有一个用户登陆协议栈,我找到了lwip并下载了它。但我是 freebsd 的新手,无法在freebsd 10.1上安装它。请帮我安装并使用它。任何链接或教程

我从这个链接下载它

0 投票
1 回答
1514 浏览

sockets - 空闲一段时间后无法连接到 lwip 绑定的套接字地址

我在 FreeRTOS 下使用 lwIP,IP 服务器在基于 ARM 的设备(Xilinx Zynq-7020)上运行,客户端是 windows。

在服务器端,当我绑定、侦听和接受地址:端口时,客户端可以连接到该地址并从该地址读取/写入。并且程序退出后,闲置一段时间(10s~30s)然后重新启动,它也可以从服务器读/写。Howeber,当我退出客户端并长时间空闲(> 30s)时,我无法再连接到服务器了。在服务器端,它不再接受任何地址。有什么解决办法吗?

服务端代码如下: