Wio Terminal DNS 服务器
DNS(Domain Name Server,域名服务器)是进行域名和与之相对应的 IP 地址转换的服务器。有了 DNS,我们就可以通过域名来访问 Web 服务器,不用记住 IP 地址。
当然,Wio Terminal 上也能实现域名解析,因此本文就来介绍 DNSServer 库和 rpcmDNS 库在 Wio Terminal 上的使用。
DNSServer 用法
使用 DNSServer 必须将 WiFi 配置为 AP 模式。在代码中添加 <DNSServer.h>
头文件,并声明 DNSServer
对象,然后调用 start()
方法,使用 processNextRequest()
方法处理请求。
#include <rpcWiFi.h>
#include <DNSServer.h>
#include <WebServer.h>
IPAddress local_IP(192, 168, 1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
const byte DNS_PORT = 53;
DNSServer dnsServer;
WebServer webserver(80);
void handleRoot()
{
webserver.send(200, "text/plain", "Root page accessed via domain name");
}
void handleP1()
{
webserver.send(200, "text/plain", "Page 1 accessed via domain name");
}
void setup()
{
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(local_IP, gateway, subnet);
WiFi.softAP("DNSServer example");
webserver.on("/", handleRoot);
webserver.on("/p1", handleP1);
dnsServer.start(DNS_PORT, "www.wioterminal.com", local_IP); //Start the DNS service, example.com is the registered domain name.
webserver.begin();
}
void loop()
{
dnsServer.processNextRequest();
webserver.handleClient();
}
将电脑或手机的 WiFi 连接到 Wio Terminal(名称为 DNSServer example),打开浏览器输入 www.wioterminal.com
和 www.wioterminal.com/p1
看看效果吧。