卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告-Winsock編程接口實(shí)驗(yàn)

網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱: Winsock 編程接口實(shí)驗(yàn)實(shí)驗(yàn)類型:____驗(yàn)證型實(shí)驗(yàn)_____ __ 指導(dǎo)教師:______________________ 專業(yè)班級:____

網(wǎng)絡(luò)程序設(shè)計(jì)

實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)名稱: Winsock 編程接口實(shí)驗(yàn)

實(shí)驗(yàn)類型:____驗(yàn)證型實(shí)驗(yàn)_____ __ 指導(dǎo)教師:______________________ 專業(yè)班級:_____________________ 姓 名:_______________________ 學(xué) 號:電子郵件:____________

實(shí)驗(yàn)地點(diǎn):______ _______

實(shí) 驗(yàn) 日 期 2013 年 3 月 29 日

實(shí)驗(yàn)成績:__________________________

,

一、實(shí)驗(yàn)?zāi)康?/p>

● 掌握Winsock 的啟動和初始化;

● 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查詢函數(shù)的使用。

二、實(shí)驗(yàn)設(shè)計(jì)

由實(shí)驗(yàn)內(nèi)容可以知道:

1、編寫程序能同時實(shí)現(xiàn)對多個域名的解析。比如在控制臺輸入:getip www.163.com www.swust.edu.cn , 能輸出www.163.com 和 www.swust.edu.cn 對應(yīng)的IP 地址列表。

2、編寫程序獲取并輸出本地主機(jī)的所有適配器的IP 地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),MAC 地址。

首先要了解一些基本的知識gethostname(),gethostbyname(),GetAdaptersInfo()等信息查詢函數(shù)的基本知識gethostbyname()返回對應(yīng)于給定主機(jī)名的包含主機(jī)名字和地址信息的hostent 結(jié)構(gòu)指針。結(jié)構(gòu)的聲明與gethostaddr()中一致。

之后要根據(jù)內(nèi)容畫出函數(shù)流程圖

,

三、實(shí)驗(yàn)過程(包含實(shí)驗(yàn)結(jié)果)

1. 在實(shí)驗(yàn)過程中調(diào)用GetAdaptersInfo ()時,出現(xiàn)了undeclared identifier的報(bào)錯,原因是沒有包含其頭文件, 之后進(jìn)行一些修改解決了問題.

2. 實(shí)驗(yàn)結(jié)果

3. 選擇查看本機(jī)信息

四、討論與分析

1.Winsock 初始化的作用是什么?

答:使用winsock 初始化可加載winsock 編程的動態(tài)鏈接庫。

,

2.給出GetAdaptersInfo ()函數(shù)的正確使用方法。

GetAdaptersInfo 函數(shù)使用方法:

1. 包含頭文件IpHlpApi.h, 其庫文件為IpHlpApi.lib(已將安裝SDK, 并將其連接至VC)

2. 聲明一個 IP_ADAPTER_INFO 結(jié)構(gòu)指針變量 pAdapterInfo, 一個 ULONG 變量 ulOutBufLen 。這些變量作為參數(shù)傳遞給 GetAdaptersInfo 函數(shù);

3. 為結(jié)構(gòu)分配內(nèi)存;

4. 第一次調(diào)用 GetAdaptersInfo 獲取適當(dāng)?shù)?ulOutBufLen 變量大小;

5. 第二次調(diào)用傳遞 pAdapterInfo,ulOutBufLen 作為參數(shù), 調(diào)用成功時返回網(wǎng)卡信息, 失敗時返回錯誤信息。

3.域名解析時出現(xiàn)域名對應(yīng)多個IP ,請解釋原因。

大型網(wǎng)站具有多個IP ,這是因?yàn)槠湓L問量大,使用多個IP 保持負(fù)載均衡。所以要使用多個IP 同時也可以提高系統(tǒng)吞吐量

五、實(shí)驗(yàn)者自評

剛開始的時候?qū)insock 編程不是很了解,然后看了書中的知識后大概了解了許多關(guān)于Winsock 編程基本接口的知識,而且在實(shí)驗(yàn)過程中有許多的問題,例如最后顯示本機(jī)IP 地址的時候還需要將debug 中的應(yīng)用程序放入到c 盤中,之后嘗試了好多次程序就可以運(yùn)行了,不過,最后終于是寫好了,還有些關(guān)于套接字的程序書中也有參考的,可以仿照那個去修改一下自己的代碼,看看自己的有哪些不足之處,程序?qū)懙暮玫囊笫潜M量減小系統(tǒng)的利用率,增大系統(tǒng)吞吐量,可以使系統(tǒng)有更高的運(yùn)行效率。

這次實(shí)驗(yàn)是一個簡單些的驗(yàn)證型實(shí)驗(yàn),但是對于Winsock 編程是一些基礎(chǔ)知識,只要先打好了基礎(chǔ)知識才可以對于后面的實(shí)驗(yàn)?zāi)苓\(yùn)用自如,所以,以后有時間的時候也要去看書多了解關(guān)于這方面的知識。實(shí)驗(yàn)設(shè)計(jì)的時候還是比較簡單的,就是過程有一點(diǎn)繁瑣啦! 六、附錄:關(guān)鍵代碼

while(argc>1) { hostent *pHost = ::gethostbyname(* argv); // 打印出所有IP 地址 printf("jiexiyuming s n",*argv); in_addr addr; for(int i = 0; ; i ) { char *p = pHost->h_addr_list[i]; if(p == NULL) break; memcpy(&addr.S_un.S_addr, p, pHost->h_length); char *szIp = ::inet_ntoa(addr);

,

printf(" 本機(jī)IP 地址:s n ", szIp); } argc--; printf("**************************n");

標(biāo)簽: