C 模擬DNS分布式查詢

2021-07-29 11:04:31 字數 1515 閱讀 8380

c++模擬了dns分布式查詢中的迭代查詢與遞迴查詢
新建了兩個類用來模擬client,server,socket結構體用來模擬鏈路。
沒有做歷史節點記錄,每次找下乙個節點都靠隨機數。這裡有待改進。
**如下
#include using namespace std;

struct socket//用來模擬線路

;class client

; ~client(){};

client(string ip)

int respose(socket wire);//應答函式

socket send();//發報函式

void input();//輸入請求網域名稱

};void client::input()

int client::respose(socket wire)

else//找到網域名稱,直接列印

}server::server(string ip)

//監聽函式

int server::listen(socket wire)

//迭代用於返回原節點

socket server::getmsg(socket wire)

else status=false;

}//不存在,找到下乙個要去的節點賦值給ip,將原節點ip給desnation,狀態為false

if (status==false)

return temp;

}//遞迴用於找到下乙個節點

socket server::nextmsg(socket wire)

else status=false;

}if (status==false)

temp.ip=temp.desnation;

temp.source=host;

temp.flag= false;

}return temp;

}socket server::sendmsg(socket data)

int main()

if (server_1.listen(wire)) wire = server_1.sendmsg(server_1.getmsg(wire));

if (server_2.listen(wire)) wire = server_2.sendmsg(server_2.getmsg(wire));

if (server_3.listen(wire)) wire = server_3.sendmsg(server_3.getmsg(wire));

if (server_4.listen(wire)) wire = server_4.sendmsg(server_4.getmsg(wire));

if (user.respose(wire) == 0) else

}} else else }}

}

分布式查詢

sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...

分布式查詢

exec sp addlinkedserver server servera srvproduct provider sqloledb datasrc 192.168.0.28 exec sp addlinkedsrvlogin rmtsrvname servera useself false rm...

分布式查詢

sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...