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.

[参考译文] CC3220SF:SL_Connect 返回(-460) MAX SSL 套接字已打开

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1135551/cc3220sf-sl_connect-returns--460-max-ssl-sockets-are-opened

器件型号:CC3220SF

你好!

我正在尝试打开项目中的安全套接字。 在 n 个请求后、sl_Connect 开始返回-460L 错误。

以下是用于执行1个周期的伪代码:

sockId = sl_Socket (sl_AF_iNet、sl_sock_stream、sl_SEC_Socket);

status = sl_NetAppDnsGetHostByName (pUrn、urnLength、(_u32*)&outIpAddr、sl_AF_iNet);

此处设置了//安全套接字选项,包括 CA 和证书的公钥。

status = sl_Connect (sockId、(const SlSockAddr_t*)&sLocalAddr、sizeof (SlSockAddrIn_t));

//从套接字接收数据

sl_close (sockId);

在 n 个周期后、sl_Connect 返回-460L

通过 UART 的调试日志显示、sockId 是从0创建到15创建的、也会按顺序关闭。

提前感谢您、

此致

Sneha

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

    您好、Sneha

    但请注意调用 sl_close()不会本身关闭套接字。 它通过3向握手来初始化闭合套接字。 这意味着"实际"闭合插座可能需要更长时间、尤其是当另一侧缓慢或无响应时。 如果要使用套接字关闭超时功能、可以使用 linger 套接字选项。 此外、如果套接字代码出现错误、请确保正确关闭套接字。

    1月

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

    您好、Jan、

    感谢您的快速回复。 我知道 sl_close()只启动握手。 在我的用例中、例程每12小时左右执行一次、错误-460在-462错误后开始出现2次。 大约150-180个周期后、-462误差开始出现。 这是我感到困惑的地方。

    您有什么提示吗?

    BR、

    Sneha

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

    您好、Sneha、

    很难说出您的代码中发生了什么。 也许您应该检查在关闭未调用的套接字时是否没有任何未处理的套接字错误状态。 套接字的 linger 选项设置也可能是个好主意。 如果您需要从该状态恢复、则 NWP 重启将执行其任务。

    但是、如果您想在第一阶段深入研究此错误、请将 ServicePack 更新为最新版本并捕获 NWP 日志和网络日志(Wireshark、tcpdump)。

    1月

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

    您好、Jan、

    UART 调试日志显示使用 sl_Socket 创建的所有套接字都执行了相应的 sl_close。

    此外、有趣的一点是、在-462错误发生后、-460恰好开始发生2次、这也是通过 sl_close 进行处理的。 我看到一篇具有类似行为但没有发现 根本原因的文章、即 https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/510787/sl_close-cannot-prevent-error--460-max-ssl-sockets-are-opened

    BR、

    Sneha

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

    您好!

    我认为 Thread 与您的问题没有直接关系、因为他会在关闭后立即打开新套接字(您的间隔为12小时)。

    我将讨论 NWP 日志(请参阅第20章中的 SWRU455)、而不是应用代码中的 UART 日志。 此外、嗅探器的网络日志也很好。

    1月

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

    您好、Jan、

    我们尝试通过在源代码中设置以下命令来启用 NWP 日志。 引脚62不用于任何其他用途。

    MAP_PRCMPeripheralClkEnable (PRCM_UARTA0、PRCM_RUN_MODE_CLK);

    MAP_PinTypeUART (PIN_62、PIN_MODE_1);

    但是、在 Putty 上看不到任何数据。 使用 CC3220SF Launchpad。 引脚 P62、PIN62*、P01在 launchpad 上尝试但未成功。

    RX 线缆和 FTDI 线缆的 GND 被连接。

    是否应启用其它功能?

    谢谢、

    BR、

    Sneha

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

    您好、Sneha、

    这两行应该足以在 CC3220SF QFN 的 PIN62 (别名 GPIO7)上启用 NWP 日志。

    我不确定您是否使用了确切的封装。 对于 MOD、内部 QFN 中的 PIN62与 MOD 的 PIN52映射。 确保您没有将 GPIO7 (P62)引脚重新配置为其他内容...

    也许出于测试目的、您可以将 LaunchPad 与 SDK 示例结合使用、并在此示例中启用 NWP 日志。

    1月

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

    您好、Jan、

    我们将使用 LaunchPad CC3220SF 模块。 引脚62未重新配置为任何其他内容。

    遗憾的是、在跳线中的 P62上、未接收到数据。

    BR、

    Sneha

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

    您好、Sneha、

    请尝试使用 SDK 示例。

    我看不到 NWP 日志不起作用的任何原因。 我在我的应用程序中使用该代码、它运行良好。 NWP 日志的替代引脚如下:

    MAP_PinTypeUART(PIN_53, PIN_MODE_5);//GPIO30
    MAP_PinTypeUART(PIN_18, PIN_MODE_3);//GPIO28
    MAP_PinTypeUART(PIN_60, PIN_MODE_3);//GPIO5
    MAP_PinTypeUART(PIN_62, PIN_MODE_1);//GPIO7

    1月

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

    您好 Jan、

    要配置 linger 套接字选项、 sl_SetSockOpt (... ling...) 应该在 close ()(示例1)之前完成、或者、它是无关的并且可以在 sl_Connect ()之前完成(示例2)?

    示例1:  

    sockID = sl_Socket (...);

    sl_connect (...);

    SL_SetSockOpt (...);//假设 linger 选项

    sl_close (sockID);

    示例2:

    sockID = sl_Socket (...);

    SL_SetSockOpt (...);//假设 linger 选项

    sl_connect (...);

    sl_close (sockID);

     谢谢你。

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

    您好!

    通常、setsockopt 应在创建套接字后和实际连接之前出现。

    至于 NWP 日志、如果您有一个模块、则引脚为#52 (而不是#62)。

    Shlomi

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

    您好!

    是否有任何函数可以了解在特定时刻打开了多少个套接字 simplelink?

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

    我提出这一问题是因为我们已经在使用 linger 套接字选项、问题仍然存在。 因此、它看起来关闭不能正常工作  

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

    您好!

    我个人在调用 API 以关闭套接字之前使用 linger 选项、但我认为 Shlomi 的建议也应该有效。 设置 linger 选项时代码的外观如何? 您如何设置 linger 选项的超时?

    没有用于计算打开的套接字数量的 API。

    要继续、您需要通过监听器捕获网络日志。 NWP 日志也很有用。

    您是否能够按照我之前的要求在 SDK 示例中捕获 NWP 日志?

    1月

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

    请在您有 NWP 日志时告知我们、以便我了解一下。

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

    您好、Shlomi、

    我们成功记录了 NWP 中的数据。 由于日志 具有 专有 信息、因此我们有一位 TI 同事在分析日志。 我将在这里公布结果、供将来参考、

    谢谢、BR、

    Sneha

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

    那么谁是收件人?

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

    日志将发送到 Roger Monk

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

    好的、谢谢

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

    NWP 日志分析表明、当套接字不再可用时、对 sl_Connect 的调用过多会导致状态。 在应用程序堆栈中进行相关更改