dnsServer就填本机的IP地址,dnsPort就是我们刚刚创建的默认端口53 。
首先运行DNS服务器:
INFO i.n.handler.logging.LoggingHandler - [id: 0x021762f2] REGISTEREDINFO i.n.handler.logging.LoggingHandler - [id: 0x021762f2] BIND: 0.0.0.0/0.0.0.0:53INFO i.n.handler.logging.LoggingHandler - [id: 0x021762f2, L:/0:0:0:0:0:0:0:0:53] ACTIVE可以看到DNS服务器已经准备好了,绑定的端口是53 。
然后运行上面的客户端,在客户端可以得到下面的结果:
INFO c.f.d.Do53TcpChannelInboundHandler - question is :DefaultDnsQuestion(www.flydean.com. IN A)INFO c.f.d.Do53TcpChannelInboundHandler - ip address is: 46.53.107.110可以看到DNS查询成功,并且返回了我们在服务器中预设的值 。
然后再看一下服务器端的输出:
INFO i.n.handler.logging.LoggingHandler - [id: 0x021762f2, L:/0:0:0:0:0:0:0:0:53] READ: [id: 0x44d4c761, L:/127.0.0.1:53 - R:/127.0.0.1:65471]INFO i.n.handler.logging.LoggingHandler - [id: 0x021762f2, L:/0:0:0:0:0:0:0:0:53] READ COMPLETEINFO c.f.d.Do53ServerInboundHandler - Query is: DefaultDnsQuestion(www.flydean.com. IN A)可以看到服务器端成功和客户端建立了连接 , 并成功接收到了客户端的查询请求 。
总结以上就是使用netty默认DNS服务器端的实现原理和例子 。因为篇幅有限,这里只是默认了type为A address的情况 , 对其他type感兴趣的朋友可以自行探索 。
本文的代码,大家可以参考:
learn-netty4
推荐阅读
- MySQL该使用哪种CPU架构服务器?
- Pwn学习随笔
- 手记系列之三 ----- 关于使用Nginx的一些使用方法和经验
- Day10:for循环结构的使用详解
- Re:从零开始教你使用 Sublime Text
- 我的世界漏斗矿车怎么用(漏斗矿车如何使用)
- kafka-consumer-groups 命令行工具使用手册
- 二十四 设计模式学习:Spring 中使用到的设计模式
- 3 onps栈使用说明——tcp、udp通讯测试
- 云原生之旅 - 10)手把手教你安装 Jenkins on Kubernetes