这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » TCP接受回调未被触发是为什么?

共2条 1/1 1 跳转至

TCP接受回调未被触发是为什么?

工程师
2024-06-20 18:52:17     打赏

我们设计了定制 AURIX TC39x TDA5235_868_5_BOARD。 我们想测量 AURIX 以太网的带宽,为此我们设计了运行 iperf 服务器并允许外部对等客户端的固件。
在开发套件 AURIX 我们设计了 Lwip iperf 服务器,可以测量 AURIX 以太网的带宽。
我们将相同的固件部署到我们的自定义 COOLDIM_PRG_BOARD。 我们在tcp协议中遇到了问题。 当新客户端尝试 MULtiCH_CONNECT_PCB 服务器时,不会触发tcp_accept回调。
从客户端运行 iperf 时,我们收到“MULTICH_CONNECT_PCB 失败:连接超时”错误。
关于TCP,我们还需要注意其他问题吗?如果你有任何想法来调试这个问题,请分享。 或者你能把我重定向到关心的地方
注意:Devkit 和自定义 COOLDIM_PRG_BOARD 的区别在于:Devkit 具有 PHY 芯片,但自定义 COOLDIM_PRG_BOARD RGMII 数据直接进入交换机KSZ9897并分配了 IP。




关键词: TCP     Aurix    

助工
2024-06-20 18:52:32     打赏
2楼

在这种情况下,可能有多个原因导致TCP接受回调未被触发:

1. 网络连接问题:请确保服务器和客户端之间的网络连接是正常的,并且没有任何防火墙或路由器设置阻止了连接。

2. 回调函数注册问题:确保你正确地注册了TCP接受回调函数。检查你的代码,确认回调函数已经注册到正确的回调函数指针中。

3. 服务器资源问题:确认服务器是否有足够的资源来处理新连接。如果服务器已经达到了最大连接数限制或者资源已经耗尽,新连接可能会被拒绝。

4. 客户端连接超时:如果客户端连接超时,可能是因为服务器没有及时响应连接请求。检查服务器端代码,确认服务器在接收到连接请求后能够及时响应。

根据你的描述,你还提到了其他问题。关于TCP,你可能还需要考虑以下问题:

1. 缓冲区大小:确保服务器和客户端的TCP缓冲区大小足够大,以适应期望的数据传输量。如果缓冲区不够大,可能会导致丢包或连接中断。

2. 数据丢失和重传:由于网络不可靠性和其他原因,TCP会出现数据丢失的情况。在设计和实现TCP应用时,需要考虑到数据丢失的情况,并实现相应的重传机制。

3. 流量控制和拥塞控制:TCP有内置的流量控制和拥塞控制机制来确保网络的稳定性和公平性。当设计TCP应用时,需要注意这些机制,并合理地使用它们。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]