器件型号: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()时,我将再次得到对等错误的连接复位。
除了忽略呼叫之外、我在如何解决这一问题或如何解决这一问题上感到很损失。
有什么想法吗?