您好!
我使用了 Enet TCP 回显服务器、我获得了成功的客户端连接、在 ECHO_Accept 函数中、它会调用 tcp_recv 、该函数成功接收来自客户端的数据、现在我希望在客户端连接后立即连续发送和接收数据。
Tiva ware SDK 版本: TivaWare_C_Series-2.2.0.295
请帮助
此致
sagart
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我使用了 Enet TCP 回显服务器、我获得了成功的客户端连接、在 ECHO_Accept 函数中、它会调用 tcp_recv 、该函数成功接收来自客户端的数据、现在我希望在客户端连接后立即连续发送和接收数据。
Tiva ware SDK 版本: TivaWare_C_Series-2.2.0.295
请帮助
此致
sagart
e2e.ti.com/.../2021.enet_5F00_tcpecho_5F00_server.c
我在这里附上了我的源代码。
如果我回送从客户端发送的数据、它会给出正确的响应、但当我尝试在 while 循环内发送数据(无回读)时、不会发生、并会生成错误。
此致、
Sagar
请参阅此主题由 David Wilson 回答。 https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/319674/optimizing-udp-in-lwip-on-tiva---how-to-determine-when-a-packet-has-been-sent
这里最大的问题是、您从以太网中断处理程序以外的上下文调用 lwIP。 lwIP 不可重入、因此您只能从一个上下文调用它。 使用 RTOS 时、这意味着仅从单个线程调用 lwIP API。 当不使用 RTOS 时(与我们的大多数示例一样)、您必须在以太网中断处理程序的上下文中进行调用。
另外,我将在下周三休假,我的回复将被推迟。