ESP8266 – DNSServer库 – processNextRequest

位置导航: ESP8266库 / DNSServer库 / 本页

说明

processNextRequest函数用于处理DNS请求。当ESP8266模块收到UDP请求后,它将判断该请求是否查找域名映射的IP地址。如果是,则返回IP地址。若有错误则会返回setErrorReplyCode设定好的错误码。

语法

dnsServer.processNextRequest()

参数

返回值

示例程序

关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。

示例程序操作说明
当您将以下程序编译并且上传给ESP8266开发板以后,接下来您可以使用手机连接ESP8266开发板所建立的WiFi网络。该WiFi网络名称是DNSServer example(连接此网络无需密码)。

ESP8266-DNS-Example-1
ESP8266-DNS-Example-1

请打开手机的浏览器,并且在浏览器地址栏中输入“www.example.com”。

ESP8266-DNS-Example-2
ESP8266-DNS-Example-2

输入地址后,再按下确认键。浏览器将会打开下图所示的页面。该页面正是由ESP8266开发板所建立的。

接下来,我将对此示例程序的基本工作流程给您做一个简单的介绍。请留意,在以下示例程序的控制下,ESP8266服务器将会扮演两个角色。第一个角色是DNS服务器,也就是本页面所要讲解的重点。第二个是网络服务器,也就是响应客户端的HTTP访问请求。

在以下示例程序中,我们使用了dnsServer.start(DNS_PORT, "www.example.com", apIP)启动了DNS服务。当我们通过浏览器输入了www.example.com这一网址信息并按下确认键后,浏览器将会向ESP8266所建立的DNS服务器发送DNS服务请求。

ESP8266服务器在收到此请求后,将会通过服务器内的检索信息获取到www.example.com这一网址所对应的IP地址正是ESP8266服务器的IP地址。于是ESP8266DNS服务器将会把这一检索结果响应给浏览器。

浏览器得到了DNS服务器响应,也就是www.example.com网址所对应的IP正是ESP8266服务器的IP,于是浏览器将会再次向ESP8266的IP地址发送HTTP请求。

当ESP8266接收到浏览器客户端的HTTP访问请求后,ESP8266的网页服务器功能将会生成HTTP响应信息,并且返回给手机浏览器客户端。浏览器于是便显示出以下图片所显示的信息内容。

ESP8266-DNS-Example-2
ESP8266-DNS-Example-3

相关内容

start – 启动DNS服务
stop – 停止DNS服务
setErrorReplyCode – 设置错误响应码
setTTL – 设置TTL

位置导航: ESP8266库 / DNSServer库 / 本页