手把手教你使用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

推薦閱讀