若何和Whois++网衔接查询[VC/C++编程]
本文“若何和Whois++网衔接查询[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在Whois++构造中,由客户负责举行网状环游,因为每个主机仅告诉客户与它相邻的主机是什么,这个协议倒不是复杂,客户翻开到一台服务器的衔接,发送查询恳求,接纳应答,关闭衔接.客户在接纳到应答后举行解析,然后决意下一个接洽哪一台主机.这样使得客户必须有一种算法使得客户查询的主机没有反复的,并且可以尽快找到要找的主机.
每个Whois++客户应当被配置为自动和一个特定的Whois++服务器接洽.这个默许的服务器大概有这样那样的要求,但是最基本的要求就是最好是本地服务器.
在接纳到服务器的应答后,假如命中数大于0,则把后果返回用户.假如客户被要求和一个或多个服务器举行通信,客户要可以知道这些服务器指针是什么.
查询的办法有两种一种是扩大查询,一种是利用服务器目录.假如命中数为0,或用户但愿扩大查询,客户机应当举行扩大查询,它只需求向服务器发送下面两种消息便可:'polled-by'或'polled-for',客户可以向新指定的主机举行扩大查询.
客户必须保存查询过的服务器,不要查询过的服务器再查询一次.
3.1.1. 优化网络
假如A但愿常常利用B的WHOIS++服务器,A会但愿通过成立一个本地索引服务器将B的服务器成为本地可用的.当A的客户通过扩大查询但愿查询B时,解析的速度就会快得多.
Whois++网络已经不是一个树了,B和F之间已经成立了直接通道.这样查询的速度就快得多了,不用在查询完B后查询A,再查询C,最后再查询F.因为B和F已经成立了联合,所以,当客户只需求查询此中之一的数据时需求指时要的是哪一个,不然会返回B和F结点的内容.在客户方还可以利用黑名单办法将查询中的一些服务器屏蔽掉,因为拜候这些服务器代价太大或别的缘由不肯意让用户拜候这些服务器.
3.1.2. 客户利用的算法
Query := 需求查询的数据;
QueriedServers := {};
AnswerList := {};
OriginalServers := { 客户所知的服务器 };
while OriginalServers非空 do:
ServerList = OriginalServers;
while ServerList非空 do:
Server := ServerList[1];
if Server未包含在QueriedServers中 then do:
send Query to Server;
Answer := 从Server返回的呼应;
将ServersToAsk附加到ServerList;
将Server从ServerList删除;
将Answers附加到AnswerList;
end;
done;
if 应当扩大查询 then do:
ServerList := OriginalServers;
OriginalServers := {};
while ServerList非空 do:
Server := ServerList[1];
发送Polled-For-Query到Server;
Answer := 从Server返回的呼应;
将Answer附加到OriginalServers;
将Server从ServerList删除;
end;
done;
done;
显示AnswerList;
以上是“若何和Whois++网衔接查询[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |