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.

[参考译文] TM4C1294NCPDT:如何关闭 lwip 插座。

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/767064/tm4c1294ncpdt-how-to-close-lwip-socket

器件型号:TM4C1294NCPDT

你(们)好

我在应用中使用了 TIvaware 和 lwip-1.4.1。

它是原始套接字。

我找到了 tcp_close 和 tcp_abort 函数、但这些函数只能释放 PCB、套接字仍在侦听。

如何关闭套接字?

请帮我解决这个问题。

非常感谢!

艾伦

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

    您好!

     有关详细信息、请参阅此链接。   下面是描述的一个片段。 您与之通话的主机需要确认关闭。  

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

    你(们)好,查尔斯

    当 recv 函数 关闭连接时、它将调用下面的函数。

    tcp_arg (PCB、NULL);
    tcp_sent (PCB、NULL);
    tcp_recv (PCB、 空);
    mem_free (hs);
    tcp_close (pcb); 

    我使用 Wireshark 观察数据包、 并观察到完整的 FIN 数据包。

    连接已关闭、但套接字仍在侦听。(远程主机启动 SYN、lwip 将接受。)

    由于我的应用具有其他通信接口、当接口发生变化时 、我需要关闭套接字并停止侦听(完全关闭)。

    抱歉、这是我第一次使用 RAW 套接字。

    如有任何问题、请更正。

    艾伦

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

    请查看此链接 www.cs.miami.edu/.../tcp_nutshell.html 、了解连接完成情况。 您可能有一个半闭式连接。 远程主机是否还向您发送了 FIN 数据包以完全完成连接?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,查尔斯

    感谢您的回复。

    它是服务器。
    我使用 Wireshark 检查。 服务器和客户端完成了4次握手。
    很抱歉、我忘记告诉您一件事。
    我有连接到 MCU 的外部输入按钮、它可以切换 MCU 的通信接口。
    当接口切换时、我需要插座停止侦听。
    因此我需要一种方法让套接字停止侦听、关闭。(在服务器和客户端完成完全关闭连接后。)

    谢谢!

    艾伦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许可以尝试(tcp_abort)断开堆栈 TCP 套接字连接。 UDP 套接字可能不受影响、LWIP 中似乎也应存在(UDP_ABORT)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Allen、
    BP101的建议是否有帮助?
    如果您要从一个通信接口切换到另一个通信接口,您是否可以在完成服务器和客户端之间的4次握手后首先禁用以太网。 您可以尝试使用 EMACTxDisable 和 EMACRxDisable 等 API。 不是最好的解决方案、而是需要探索的一段时间。 如果有其他方法可以完全终止连接、您可能还需要检查 LwIP 论坛以获取建议。