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.

[参考译文] TM4C1294KCPDT:如何在 IP 地址更改后重新配置 UDP 设置?

Guru**** 2331530 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/594191/tm4c1294kcpdt-how-to-reconfigure-udp-setting-after-ip-address-changed

器件型号:TM4C1294KCPDT

尊敬的所有人

我正在处理一个应用程序、其中涉及在之间更改静态 IP 地址、该程序使用 UDP 协议、并且初始化为:

myData.udppcb =(struct udp_pcB*) udp_new();
UDP_BIND (MyData.udppcb、IP_ADDR_ANY、APP_PORT);
UDP_recv (MyData.udppcb、Recv_Handler、NULL);

在我需要使用以下行更改 IP 地址之前、代码工作正常:

lwIPNetworkConfigChange (NewIpAddr)、NewMask)、NewGateWay)、IPADDR_USE_STATIC);

IP 地址更改已成功完成、但是、如果我重新配置 UDP 配置、它会停留在 UDP_BIND 函数中、如果我跳过初始化代码、它首先看起来工作正常-能够 ping 通并接收一些数据包、但稍后、它似乎会卡在某个位置。 我想知道 IP 地址更改后需要如何处理 UDP 配置。

感谢您的回应!

谢谢!

Ping

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ping 您好、

    在更改 IP 地址之前,必须确保关闭所有 UDP 和 TCP 端口绑定。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、Amit

    那么、它是否使用 need udp_remove()函数或 udp_ddisconnect()来关闭 UDP 绑定?

    完成 IP 地址更改后,我想它需要再次调用 udp_new()和 udp_bind ()?

    此致!

    Ping

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ping 您好、

    UDP_REMOVE 是用于为 PCB 取消分配结构的函数。 是的、IP 地址更改完成后、您应该启动新的 UDP 连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Amit

    感谢您的回复、我按照建议进行了操作、最初运行良好、但经过几轮更改、软件陷入故障状态、 每次 IP 更改后都运行基于 UDP 的协议、我怀疑这两者之间还有其他需要清理的地方、是否有任何建议? 是否需要重置物理 EMAC?  

    Ping

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ping 您好、

    否、不需要重置 EMAC 控制器。 请在他们的邮件列表中查看 lwIP 支持。