手把手教你使用netty搭建一个DNS tcp服务器( 三 )

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

推荐阅读