LwIP应用开发笔记之2: DNS

DNS需要开启LWIP_DNS这个宏,其中开启方式是在lwipopts.h中找到LWIP_DNS然后#define LWIP_DNS 1
其中一共有两种方式进行DNS,需要注意的是区别主要是一个是RAW API,另外一个是 Sequential API
  • 第一种方式进行连接的话有无操作系统都没有影响,只需要移植几个头文件,但是需要注意的是都是回调函数。
  • 第二种方式进行编程则需要注意的是需要移植内核和上层函数的。但是只可以在操作系统上面进行编程。
  • 还有第三种方式套接字进行编程,但是进行编程的话是需要注意的是,这是通过Sequential API再次进行封装的,所以速度会慢。但是使用起来可能和之前的Socket类似
  • 建议使用第一种和第二种混合使用。

OK,介绍完API接下来就是DNS需要注意的点了,一开始打算使用RAW API进行编程,这个API使用的时候需要注意的是回调函数之前。但是由于需要定义各种结构体,比较麻烦最后决定采用Sequential API

/**
 * @name:dns_server_local
 * @brief:获取DNS地址
 * @author: lzc
 * @param {type} None
 * @return {type} None
 * @note: 修改记录:初次创建
 */
static ip_addr_t dns_server_local(char* url)
{
    ip_addr_t openluat_url_dns_ipaddr;    //IP结构体
    err_t     err;                    
    printf("START DNS !!\r\n");    
    err = netconn_gethostbyname(( char* )url, &openluat_url_dns_ipaddr);    //主要调用函数,需要注意进行解析时会进行阻塞,直到解析完成。
                                                                            //当域名解析无法完成或者解析错误的时候会返回ERR_VAL错误
    if (err == ERR_OK)
    {
        ip_ntoa(&openluat_url_dns_ipaddr);
        printf("   IP IS   = %s \n", ip_ntoa(&openluat_url_dns_ipaddr));
    }
    return openluat_url_dns_ipaddr;
}

踩坑处,需要注意的是调用函数的时候。不能在RAW API的回调函数之中,不能在临界段中使用,传参最好不要用指针(可能是我指针没用对)。

需要包含的.h文件是#include "lwip/api.h"

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《lwip应用开发实战指南》是一本关于lwip协议栈应用开发的指南,以PDF形式提供。lwip是一个轻量级的开源TCP/IP协议栈,可以用于嵌入式系统和物联网设备的网络通信。 这本指南主要包含了lwip协议栈的原理介绍、应用示例和实战开发经验等内容。首先,指南会逐步介绍lwip协议栈的工作原理,包括数据包的封装和解封装、路由选择、连接管理等。读者可以通过这些基础知识了解lwip的工作流程和协议实现。 其次,指南还提供了一些lwip应用示例,例如建立基于lwip的服务器和客户端应用、使用lwip进行网络调试等。这些示例可以帮助读者更好地理解lwip的使用方法和技巧,并且提供了实际应用场景的解决方案。 最后,指南还分享了一些实战开发经验和注意事项,帮助读者在开发lwip应用时避免常见的错误和问题。这些经验包括性能优化、内存管理、多线程处理等方面的技巧,可以帮助读者在实际开发更好地利用lwip协议栈。 总体来说,这本《lwip应用开发实战指南》是一本对于想要学习和应用lwip协议栈的开发人员非常有用的资料。通过阅读这本指南,读者可以系统性地学习lwip的原理和使用方法,并且可以通过实际示例和经验分享来提升自己的开发水平。 ### 回答2: "lwip应用开发实战指南"是一本介绍lwIP(轻量级IP协议栈)应用开发的实战指南。该书针对lwIP提供了详细的开发指导和实例,有助于读者深入了解lwIP的原理和应用开发。 该指南首先介绍了lwIP的概念、特点和基本架构。随后,通过实际的案例演示,讲解了如何在不同的应用场景使用lwIP进行网络通信。其包括TCP/IP通信、UDP通信、网络调试等常见应用。 指南还详细介绍了lwIP的网络接口、协议栈和内存管理等关键要点。读者可以通过学习这些内容,深入掌握lwIP的核心技术,提升应用的性能和可靠性。 此外,该书还提供了一些实用的开发技巧和调试方法,帮助读者解决lwIP应用开发常见的问题。通过这些实例和技巧,读者可以更好地理解lwIP的工作原理,掌握lwIP开发的关键技术。 总之,《lwip应用开发实战指南》是一本对于lwIP应用开发者来说非常有价值的参考书。其以简明扼要的方式介绍了lwIP的原理和应用开发技巧,为读者提供了一个实际操作的指导。无论是初学者还是有一定经验的开发者,都可以从获得一些宝贵的经验和启示。希望读者能够通过本书的学习,掌握lwIP的开发技术,提高自己在网络应用开发的水平。 ### 回答3: "LwIP应用开发实战指南"是一本针对LwIP(Lightweight IP)网络协议栈的应用开发实践指南的PDF电子书。LwIP是一种独立、可嵌入的开源网络协议栈,被广泛应用于嵌入式系统和物联网设备。 这本指南通过实际案例和项目演示,详细介绍了如何使用LwIP协议栈进行应用开发。首先,它介绍了LwIP协议栈的基本概念和特性,包括TCP/IP协议、IP地址分配、套接字编程等内容。然后,它详细讲解了如何使用LwIP协议栈进行网络连接的建立和管理,包括网络接口的配置、DNS解析、TCP和UDP连接的建立等。同时,它还介绍了如何实现网络服务,例如HTTP服务器、FTP服务器等。 这本指南的特点之一是提供了大量的实例代码和可供实验的项目案例。读者可以通过按照书的指导进行实验,逐步学习和掌握LwIP应用开发技巧。同时,这本指南还强调了实践和调试的重要性,通过解决实际问题的方式,帮助读者更好地理解和应用LwIP协议栈。 总的来说,“LwIP应用开发实战指南”是一本面向嵌入式系统和物联网设备开发人员的指导书,它通过实例和项目案例,帮助读者深入了解和应用LwIP协议栈进行网络应用开发。无论是初学者还是有一定经验的开发人员,都能从获益,并提升他们的应用开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值