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.

[参考译文] LAUNCHCC3220MODASF:在 AP 模式下、CC3220创建的 HTTP 客户端无法连接至位于 PC 端的服务器

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1361410/launchcc3220modasf-in-ap-mode-the-http-client-created-by-cc3220-cannot-connect-to-the-server-located-on-the-pc-side

主题中讨论的其他器件:SysConfigLAUNCHCC3235MOD

您好!

我们的产品方案是主机计算机(包括 HTTP 客户端和服务器)在 PC 上设置为根据用于数据传输的 HTTP 协议与 CC3220进行通信。 CC3220包含两个主要功能:1. 以 AP 模式运行以建立 AP 信号、2. 正在建立 HTTP 客户端。 PC 将连接到 CC3220的 AP 信号、因此客户端和服务器都在同一本地网络中进行数据传输。

 在 CC3220 SDK 中、仅将设置为 STA 模式(CC3220连接到移动热点进行测试)可允许客户端成功连接到服务器。 但是、如果我们将 CC3220切换到 PC 连接到此 AP 信号的 AP 模式、CC3220客户端将无法连接到服务器。 函数 HttpClient_connect 返回错误代码-2006 (表示输入参数错误)。 HOSTNAME 已验证为正确。

 Question:

  1. 在 AP 模式下、CC3220是否能够作为客户端运行以连接 PC 服务器?
  2. 如果是、我们如何解决上述错误问题?
    e2e.ti.com/.../E2E_BA8B5B57D063EE95_.docx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如何在 CC3220的 AP 模式下设置 DNS 服务器地址? 您只能使用 IP 地址进行测试吗?

    BTW...您的.docx 文件不可读。

    1月

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

    大家好、Jan、

    感谢您的回复!  

    我将使用 SDK 中 HTTP GET 示例代码中的 HttpClient_connect 函数。

    其中一个参数是 hostname,设置为:http://10.123.45.2:8080'(AP 信号上计算机的 IP 地址)。

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

    您好!

    您是否可以使用调试器检查 http 客户端库中返回错误代码-2006的确切位置?

    1月

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

    大家好、Jan、

    我直接调用了函数 HttpClient_connect、并且出现错误代码-2006的特定位置位于函数 SlNetUtil_gethostbyname 中。

    返回值为-2006、其故障会导致 SlNetSock_connectURI 等后续函数失败、返回值也为-2006。

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

    您好!

    错误代码-2006意味着 SlNetUtil_gethostbyname()中的输入参数不正确。 如果在调用 SlNetUtil_gethostbyname()之前使用调试器并检查内部变量 domainBuff 是否被设置为"10.123.45.2",对吧? 您在 STA 测试中使用了哪个域名。 它使用的 IP 地址如"">">http://142.251.36.78"或 doamin 名称如http://google.com"? 

    1月

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

    domainBuff 的值为10.123.45.2,μ s。在 STA 模式下,doamin 名称是使用 的 IP 地址,如"">">142.251.36.78:8080",Connection Successful,如下图所示。

    关键问题就在这里。 FAE 和我都通过了相同的测试(2006年)。

     如何正确设置域名?

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

    您好!

    在文件/source/ti/net/slnetutils.c 中、它看起来会返回您的错误代码、因为您的情况中未设置 SlNet 接口。 请确保 SlNet 层已正确初始化(例如调用 ti_net_SlNet_initconfig ()等)。

    SlNetUtil_gethostbyname ()函数的一部分,其中可能会使您的代码在 AP 模式下发生故障。

    /* Search for the highest priority interface according to the ifBitmap and the queryFlags */
    netIf = SlNetIf_queryIf(ifBitmap, SLNETIF_QUERY_IF_STATE_BIT | SLNETIF_QUERY_IF_CONNECTION_STATUS_BIT);
    
    /* Check if the function returned NULL or the requested interface exists */
    if ( (NULL == netIf) || ( NULL == (netIf->ifConf)->utilGetHostByName) ) {
      /* Interface doesn't exists, return error code */
      return SLNETERR_RET_CODE_INVALID_INPUT;
    }

    1月

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

    大家好、Jan

    您的猜测是正确的;在 AP 模式下、`ti_net_SlNet_initconfig`函数不会返回0值、而是返回-2006值、这表示初始化 SlNetSock 失败。 该函数未能执行的可能原因是什么? 我刚刚进行了一个测试、在 STA 模式下、即使`ti_net_SlNet_initconfig`函数无法执行(-2006)μ s、仍然可以成功连接到服务器。

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

    您好!

    函数 ti_net_SlNet_initconfig()是由 SysConfig 生成的,因此我不知道为什么在您的情况下会失败。

    我对 SlNet_层和 AP 模式没有太多经验。 请等待 TI 工程师回答。 但我想你将需要调用 SlNetif_init()...

    1月

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

    大家好、Jan、

    感谢您的回复!  

    函数 SlNetif_init()已被调用。 我只需要等待 TI 工程师与我联系吗?

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

    您好!

    我不确定为什么 SlNetIf_层初始化在您的情况下不起作用。 是的、您应该等待 TI 的回答。 也许他们会有一些想法。

    BTW……您使用的是什么 CC32xx SDK 版本和 CCS 版本?

    1月

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

    大家好、Jan、

    版本如下图所示:

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

    您好!

    你说过你叫 SlNetif_init (),对吗? 但 SlNetif_add()怎么样呢? 你叫它吗?

    请查看生成的文件 ti_net_config.c。 它包含相关代码、您应该从 main 中调用它。

    此致、

    什洛米

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

    你好, Shlomi

    感谢您的回复!  

    是的、我已经在主线程中调用了 SlNetif_add ()函数、并且确认了 SlNetif_init、SlNetif_add 和

    其他函数会返回值0 (成功时为零、或失败时为负的错误代码)、但 ti_net_SlNet_initconfig

    函数仍返回值-2006。

     在 调试  文件 ti.net_config.c 时 我 选中了、但是执行

    停止。 该文件的内容如图所示。

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

    您好!

    很难分辨为什么仍然失败。
    我会尝试更深入地研究它、然后回复给您。

    此致、

    什洛米

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

    您好!

    我们回到这里。

    很难在不进行调试的情况下判断发生了什么、所以我建议逐步进入 SlNetif_queryIf ()并检查是什么使函数返回时出现错误。

    此致、

    什洛米

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

    尊敬的  Shlom:

    非常感谢您关注此事。 你的专业精神为我树立了榜样。 请给我一些时间来调试函数 SlNetIf_queryIf ()的执行情况。 只要我有结果,我就会回到你的身边。

    再次感谢您。

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

    当然、小事一桩。

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

    尊敬的  Shlomi:

    我不确定我们之前讨论的 ti_net_SlNet_initconfig ()函数的失败是否会产生影响,但以下调试结果是基于执行失败的前提。

     在 AP 模式下,不执行 SlNetif_queryIf ()函数。 这些函数的调用关系如图所示。 只有 SlNetSock_create()函数调用 SlNetIf_queryIf()函数。 SlNetSock_connectURI ()和 HttpClient_connect2 ()函数都调用 SlNetSock_create ()函数,但实际上,由于未满足执行条件, SlNetSock_create ()函数也未执行。

    由于 STA 模式已成功连接到服务器、所以我之前没有仔细检查内部功能的执行情况。 但是,最近的调试结果显示,在 STA 模式下,SlNetif_queryIf ()函数执行成功,返回了正确的值,而不是空值。

    我想我们可能已经确定了原因。 无法在 AP 模式下连接到服务器可能是由于执行此系列功能失败所致。 但是,我不知道为什么在 AP 模式下没有满足 SlNetSock_create ()函数的执行条件。 这需要对我的部分和您的支持进行进一步调试。

    我们目前遇到的问题很容易重现、而且 FAE 已经重现了此问题。 无论是使用我们自己的服务器还是第三方服务器、只要该服务器在 PC 上运行、并且 PC 连接到本地网络中 CC3220的 AP 信号、就会出现客户端无法连接到服务器的问题。 我还有一个型号为 LAUNCHCC3235MOD 的 LaunchPad、但也存在同样的问题。

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

    您好!

    我需要深入研究代码以了解更多内容。

    但可能是因为它没有针对 AP 角色进行测试/支持、但我需要进行检查。

    此致、

    什洛米

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

    尊敬的  Shlomi:

    再次感谢您关注此事。 我要等你的答复。 如果有任何问题、

    我们可以提供一些帮助来协助您进行调查、请告知我们。 您的结论和

    建议对我来说非常重要。

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

    您好!

    我了解。 只是为了设定预期、由于它需要我构建设置和测试、这不是我可以立即执行的任务。

    这需要一些时间。

    此致、

    什洛米

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

    我明白,没问题。

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

    谢谢