问题标签 [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 回答
55 浏览

fpga - 使用 lwip 库时 xilinx sdka 错误

我正在尝试使用以太网接口使用 MicroBlaze 在 spartan 3 A 上创建一个回显服务器,但是当我编译项目时出现未定义的引用错误。我正在使用 lwip 1.3.0。

我想我错过了一个图书馆,但我找不到哪一个?

错误是:

microblaze_0\libsrc\lwip130_v3_01_a\src/contrib/ports/xilinx/sys_arch.c:347 >未定义对“sem_post”的引用

0 投票
1 回答
1962 浏览

multithreading - 问:如何使用 LwIP Netconn API 在 FreeRTOS 中创建线程以处理 TCP 服务器上的多个客户端?

我正在运行基于 LwIP Netconn API 的 tcpecho 示例,代码来自http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/LN1734/PF257896 特别是描述的 TCP 回显服务器应用程序在应用笔记 UM1713 中,并在文件夹 LwIP_UDPTCP_Echo_Server_Netconn_RTOS 下运行固件,因为我使用的是 FreeRTOS。代码如下。

tcpecho 服务器已经在一个线程上运行,但一次只能处理 1 个客户端,所以我想将其更改为处理多个客户端。据我从不同的论坛读到,解决方案是使用多个线程来处理多个客户端。由于我不是 FreeRTOS 方面的专家,任何人都可以展示如何做到这一点吗?

谢谢,

0 投票
3 回答
621 浏览

embedded - 使用 LWIP SNMP,调用第二个 snmp_vabind_alloc 时发生错误

我正在尝试使用轻量级 Internet 协议 (LWIP) SNMP 发送适当的陷阱。

SNMP Wiki 指出,适当的陷阱应该有

  1. 当前的 sysUpTime 值绑定
  2. 标识陷阱绑定类型的 OID
  3. 一个可选的变量绑定

然而,vb->value != NULL当第二个snmp_varbind_alloc被调用时它会出错。

当只发送变量绑定,没有其他的时候,陷阱发送到网络管理站ok。

0 投票
1 回答
1371 浏览

linux - TCP/IP:建立连接后设置保持活动的套接字选项

是否可以在一些假设的应用程序级握手之后设置套接字的SO_KEEPALIVE选项(TCP 保持活动间隔和 TCP 保持活动值)?还是必须在调用 to 之前设置它accept

我关心 Linux、Windows 和 eCos lwIP 堆栈之间的互操作性,因此非常感谢有关这两个平台的信息。

0 投票
1 回答
133 浏览

sockets - 在 Mini-OS 中无法获得超过 3 个活动 TCP 连接?

我正在Mini-OS(xen中的操作系统)中编写一个TCP服务器,它可以连接到多个TCP客户端。我编写了一个简单的代码来处理多个 TCP 客户端,但是代码存在问题。问题是我无法让服务器连接三个以上的活动连接。第 4 个或更多客户端因未知原因无法连接。我环顾论坛并尝试增加MEMP_NUM_TCP_PCBin opt.h( stubdom\lwip-x86_64\include\lwip\opt.h ) 的数量限制,但它也没有帮助。

我在Ubuntu上运行 TCP 客户端。根据我所见,第 4 个客户端似乎确实已连接,但在运行期间引发了异常"write" function: "Resolver Error 0 (no error)"

我怎么解决这个问题?

0 投票
1 回答
5479 浏览

sockets - 使用 LWIP 是否有连接限制?

我正在使用 Lwip 协议编写 TCP 服务器,通常服务器可以连接到多个 TCP 客户端。但是我有一个问题,服务器不能连接三个以上的活动连接。第 4 个或更多客户端因未知原因无法连接。我查看了论坛并尝试增加MEMP_NUM_TCP_PCBopt.h (lwip-x86_64\include\lwip\opt.h) 的数量限制,但没有帮助。

以下是我的代码,我的问题是使用 LWIP 是否有最大连接限制?最大连接数为 3 个或更多?

0 投票
0 回答
3162 浏览

networking - 使用 LwIP 在嵌入式系统中实现 VPN

我被要求在嵌入式系统上的现有软件项目中实现 VPN 功能,以便通过网络使设备可用于外部服务器,同时避免防火墙问题(无需加密,只是为了使其可访问)。

不幸的是,嵌入式系统基于 Cortex-M4 MCU,因此几乎可以立即使用 VPN 的 Linux 不是一个选择。我所拥有的只是一个 RTOS 和一个工作的 LwIP 堆栈。

我过去使用过VPN。但是,我对实现 VPN 的网络知识相当有限,所以我很困惑。正如我所想,我会使用当前的 LwIP 实例来建立隧道连接,应用程序将使用第二个实例进行实际的网络通信,而第二个实例的网络接口是虚拟的(就像一个水龙头设备在 linux 上),封装其低级数据并通过第一个 LwIP 实例的隧道连接对其进行传输。

也许这样我就可以为问题创建一个自定义解决方案,但该解决方案应该符合任何标准(因为服务器将是任何类型的复杂系统)。

所以我想知道是否有人遇到过这样的任务,并且会感激任何提示该怎么做,至少是一个方向。提前致谢!

0 投票
0 回答
1579 浏览

sockets - TCP 重传,即使已经收到数据包确认

我正面临 RabbitMQ 服务器的奇怪行为(在 ubuntu 服务器 14.04.3 LTS 下)。

客户端是基于微型 MCU (Cortex-M3) 上的 lwip v1.3.2 的 MQTT 实现。当我的客户端使用其 IPv4 地址连接服务器时,它可以工作并且客户端-服务器 TCP 套接字具有正确的 [PSH+ACK]、[ACK] 序列。

但是当客户端通过我的路由器(端口 1883 上的 NAT 活动)连接时,我得到以下序列(在服务器端)。

服务器 tcpdump 端口 1883:

请注意,它只发生在基于lwip的客户端上;我已经使用 node.js 下的 mqtt 模块成功测试了。

有人知道发送的数据包格式有什么问题吗?

谢谢,丹。

0 投票
0 回答
353 浏览

lwip - lwIP 将多个 tcp/http 段组合成单个数据包

tcp_write()发送 ( tcp_output())时,lwIP 将 2 个单独的段组合为 1 个数据包时遇到问题。有没有办法让 lwip 停止组合这些段并单独发送每个段(应该像 2 个数据包一样)?一直在寻找没有运气

使用 lwip 版本 1.3.0

0 投票
1 回答
902 浏览

freertos - lwIP + FreeRTOS 端口存储在 for 循环中

我可以毫无问题地接收和发送 TCP 帧。但经过一段随机时间(从 1 分钟到 1 小时),程序失败,卡在 vListInsert 中的 for 循环中。

在 tcpip 线程中,代码等待一帧。这是用

这是在 sys_arch.c 中定义的。当被调用时,我得到一个异常。我检查了 mbox 是否已初始化,并且可以将故障追溯到 vListInsert 中的列表迭代(在 vTaskPlaceOnEventList 中调用)

正如我所看到的,列表指针被弄乱了,因为这一点给出了异常。我还没有弄清楚为什么。

调用堆栈是

  • tcpip_thread
  • sys_mbox_fetch
  • sys_arch_mbox_fetch
  • xQueueGenericReceive
  • vTaskPlaceOnEventList

我试图在 lwIP 中增加和减少 TCPIP_THREAD_STACKSIZE(从 600 到 4k)和 MEM_SIZE 到 12k,但没有运气。

使用的优先级是以下 3 个;tskIDLE_PRIORITY+1 tskIDLE_PRIORITY+2 和 5(这里没有 tskIDLE_PRIORITY)

使用在 FRDM-K64F 板上运行的 Cortex M4。

使用 Netconn API 和非抢占式。

知道该怎么做以及下一步要尝试什么的解释吗?在这里卡了5天...

编辑:发送最多 50 个数据包,224 字节数据包并等待来自服务器的应答,这是在发送下一个数据包之前的 191 字节。每 1.5 秒执行一次(最多输出)