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/66AK2H12:NDK:TCP 的 DemonNew()回调的正确返回代码

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/654359/rtos-66ak2h12-ndk-proper-return-code-from-daemonnew-callback-for-tcp

器件型号:66AK2H12

工具/软件:TI-RTOS

回调函数可以根据需要将套接字和任务线程保持尽可能长的时间。 连接完成后、它将从回调返回。 如果需要、该函数可以选择关闭套接字。 返回代码将通知守护进程该套接字是否已关闭(0)或仍处于打开状态(1)。”

如果我返回(1),则当我调用 recv()时接收器任务出错,并且 fdError()指示错误为-9。 从 C:\ti\ndk_2_25_01_11\packages/ti\ndk\inc\serrno.h 中删除:

EBADF          9      /*错误的文件描述符*/

但是、如果我返回(0)、一切看起来都正常。

另请注意,我只使用在 DemonNew()回拨中获得的套接字调用 fdShare()对一对任务。 如果我同时在接收任务和发送任务上调用 fdShare(),我似乎会导致内存泄漏,这是因为我反复连接/断开客户端,最终导致无法连接,并在 ROV 下的 LoggerBuf 中记录了“内存不足”情况。

我的问题是:

如果我在保持套接字打开并用于其他任务时进行缩进,DemonNew()回调将返回什么?

当我的任务完成套接字时,除了 flClose ()套接字之外,我还需要做什么?

从 DemonNew()回调返回正确值时,调用 fdShare()的正确次数是多少?  

XDCtools 3.32、SYS/BIOS 6.46、CCS 7.4、PDK 4.0.7、NDK 2.25

此致、
Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已通知 NDK 团队。 他们将直接在此处发布反馈。

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

    以某种方式、我的帖子的初始部分被截断/删除。

    我的 ARM 处理器上运行了三台服务器,使用 DeamonNew()进行设置。 我还为每个服务器提供了三对任务:接收器任务和传输任务。 当 DemonNew()回调被调用时,我将套接字传递到任务对上,然后从 DemonNew()回调返回。

    NDK 文档指出:

    “对于 TCP,当建立新连接时,将创建新的任务线程,并打开套接字会话。 然后,在新任务线程上调用用户的回调函数,该任务线程同时提供新连接的套接字和调用方指定的参数(提供给 DemonNew())。 回调函数可以根据需要将套接字和任务线程保持尽可能长的时间。 连接完成后、它将从回调返回。 如果需要、该函数可以选择关闭套接字。 返回代码将通知守护进程该套接字是否已关闭(0)或仍处于打开状态(1)。”

    谢谢。

    Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    NDK 团队是否有任何回复?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、这看起来像是有裂缝。 现在有人正在查看它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mike:

    如果从回调返回1,则 fdClose ()将在套接字上调用(除非它是 UDP 套接字)。 fdClose ()代码会检查参考计数以确定是否真正将其关闭。 fdShare 会增加基准计数。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Todd。 这一说明非常清楚,海事组织应列入国家发展基金文件。
    谢谢。