1700478713
}
1700478714
1700478715
为什么要覆写toString方法呢?是为了打印展示的需要,可以直接把Recorder的信息打印出来。我们再来看抽象域名服务器,如代码清单32-32所示。
1700478716
1700478717
代码清单32-32 抽象域名服务器
1700478718
1700478719
public abstract class DnsServer{
1700478720
1700478721
//上级DNS是谁
1700478722
1700478723
private DnsServer upperServer;
1700478724
1700478725
//解析域名
1700478726
1700478727
public final Recorder resolve(String domain){
1700478728
1700478729
Recorder recorder=null;
1700478730
1700478731
if(isLocal(domain)){//是本服务器能解析的域名
1700478732
1700478733
recorder=echo(domain);
1700478734
1700478735
}else{//本服务器不能解析
1700478736
1700478737
//提交上级DNS进行解析
1700478738
1700478739
recorder=upperServer.resolve(domain);
1700478740
1700478741
}
1700478742
1700478743
return recorder;
1700478744
1700478745
}
1700478746
1700478747
//指向上级DNS
1700478748
1700478749
public void setUpperServer(DnsServer_upperServer){
1700478750
1700478751
this.upperServer=_upperServer;
1700478752
1700478753
}
1700478754
1700478755
//每个DNS都有一个数据处理区(ZONE),检查域名是否在本区中
1700478756
1700478757
protected abstract boolean isLocal(String domain);
1700478758
1700478759
//每个DNS服务器都必须实现解析任务
1700478760
1700478761
protected Recorder echo(String domain){
1700478762
[
上一页 ]
[ :1.700478713e+09 ]
[
下一页 ]