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.

[参考译文] CC3301:LWiP DNS_gethostbyname 不工作

Guru**** 2487425 points
Other Parts Discussed in Thread: CC3301

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1221339/cc3301-lwip-dns_gethostbyname-not-working

器件型号:CC3301

大家好  

我正在尝试使用新的 CC3301进行应用、而我的工作很多。  

器件已连接到 AP 并已获取 IP 地址。

但现在我在尝试使用 LWiP   DNS_gethostbyname(...)从主机名解析 IP 地址时遇到了一些困难 机械方法。



这是 我调用查找的目录:  

uint32_t RetVal = dns_gethostbyname ("www.example.com、&TargetIp、dnsFound、NULL);


从不调用回调
当我向下跟踪时-我转到下面的 dns.c 文件中的这个部分


对于(i = 0;i < dns_table_size;++i){
if ((dns_table[i].state == dns_state_done)&&
(lwip_strnicmp (name、dns_table[i].name、sizeof (dns_table[i].name))== 0)&&
LWIP_dns_ADDRTYPE_MATCH_IP (DNS_ADDRTYPE、DNS_TABLE [I].ipaddr){
LWIP_DEBUGF (DNS_DEBUG、("DNS_LOOKUP:\"%s\":已找到="、NAME));
ip_addr_debug_print_val (dns_debug、dns_table[i].ipaddr);
LWIP_DEBUGF (DNS_DEBUG、("\n"));
如果(addr){
ip_addr_copy (* addr、dns_table[i].ipaddr);
}
返回 ERR_OK;
}

DNS_TABLE 状态从不是 DNS_STATE_DONE?

你有什么想法可能会发生在这里吗?


此致  

Thomas

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

    您是否尝试过 锁定 TCPIP_CORE?

    LOCK_TCPIP_CORE();
    lwipRet = dns_gethostbyname(pURL, ctx.pIpAddr, DnsCb_found, &ctx);
    UNLOCK_TCPIP_CORE();
    
    

    这对我来说是有效的。

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

    你好 Kobi

    感谢您的快速响应!

    它也对我有用。 大约需要10秒 然后回调开始生效。

    我对 LWiP 堆栈、Code Composer 和工具链都很陌生,所以我现在学习了很多:-)

    此致

    Thomas