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.

[参考译文] RTOS/DK-TM4C129X:fdPoll 和 fdStatus 问题

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/738540/rtos-dk-tm4c129x-problems-with-fdpoll-and-fdstatus

器件型号:DK-TM4C129X

工具/软件:TI-RTOS

在我的应用程序中、我使用 fdPoll 来跟踪多个打开的套接字的状态。  在我的应用程序在特定套接字上发回一条消息后、下次尝试 fdPoll 时、我将看到有可供读取的数据、但当我读取数据时、它返回0、并且我收到"通过对等设备重置连接"错误。  这是正常的、除了主机上的套接字仍处于打开状态、我仍然能够对其进行读取/写入。

作为一个调试函数、我在 读取被执行前添加了一对 fdStatus 的调用、以查看 stocket 的条件是什么。  首先、我将使用 FDSTATUS_TYPE 的请求类型进行调用、该请求类型返回状态0、并且它是 FDSTATUS_TYPE_BUKEE套 接字(正如我所期望的、它是 由 Accept 创建的数据套接字)。  接下来 、我通过 FDSTATUS_RECV 的请求调用 fdStatus、它返回0状态 和 -1结果、表明我有错误。  这些套接字在非阻塞模式下打开、但连接到器件的主机未关闭套接字、这是报告的错误。  我可以从我的主机发送另一条消息、该消息已接收、并返回响应、但同样、每次成功通过 recv 调用清除请求时、fdPoll 例程仍会在通道上显示 Pollin (即使我已阅读所有内容)、 当调用 recv()时,我将再次得到对等错误的连接复位。

除了忽略呼叫之外、我在如何解决这一问题或如何解决这一问题上感到很损失。

有什么想法吗?

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

    您能否附加显示问题的示例项目? 请同时包括复制步骤。

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

    David、

    我有一个问题可以帮助我理解背景。 设备似乎是一个服务器、等待客户端连接。 在主机(我假设是 PC)上、您可能有多个客户端同时连接到您的服务器(在设备上)。 我是否正确?

    您是否会向我发送一个 Wireshark 捕获文件、其中显示产生错误的事务。 此外、请告诉我您的设备和 PC 的 IP 地址、以帮助我分析数据。

    谢谢、

    ~Ramsey

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

    这是否得到了解决?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍在进行这方面的工作。 我所使用的测试软件似乎在做一些不寻常的事情、我需要验证它是否正常工作并提供正确的功能。

    我现在将关闭此问题、直到我能够确定发生的确切条件。