《網(wǎng)絡(luò)程序設(shè)計(jì)》-實(shí)驗(yàn)講義-實(shí)驗(yàn)5-基于mfcwininet類與多線程編程的ftp客戶端_第1頁
《網(wǎng)絡(luò)程序設(shè)計(jì)》-實(shí)驗(yàn)講義-實(shí)驗(yàn)5-基于mfcwininet類與多線程編程的ftp客戶端_第2頁
《網(wǎng)絡(luò)程序設(shè)計(jì)》-實(shí)驗(yàn)講義-實(shí)驗(yàn)5-基于mfcwininet類與多線程編程的ftp客戶端_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)5:基于mfc winlnet類與多線程編程的ftp客戶端1實(shí)驗(yàn)?zāi)康呐c要求> 掌握mfc winlnet類編程的工作原理、mfc多線程編程的工作原理> 掌握 mfc winlnet 類編程的要點(diǎn),掌握 cinternetsession 類、cinternetconnection 類、 cinternetfile類和cfilefind類的創(chuàng)建和使用方法>理解mfc支持的兩種線程:用戶接口線程、工作線程,能根據(jù)任務(wù)的處理需求,選 擇正確的線程類型完成自己的編程任務(wù)>掌握創(chuàng)建并啟動(dòng)mfc工作線程的兩大工作步驟,能正確編程實(shí)現(xiàn)控制函數(shù)與參數(shù)的 傳遞,掌握打工作線程編程相關(guān)的

2、mfc函數(shù)的使用、以及整個(gè)mfc程序中各組成 文件的設(shè)置與相互銜接> 學(xué)會(huì)使用vc+mfc類庫速查手冊(cè)、vc+ win32 api參考手冊(cè),根據(jù)所 需要的功能,能杏詢到相應(yīng)的類和相應(yīng)的類成員函數(shù),或和應(yīng)的win32 api函數(shù), 會(huì)正確使用這些函數(shù),以完成相應(yīng)任務(wù)。>實(shí)驗(yàn)5(1):基于mfc winlnet類,以mfc多線程編程的方法,實(shí)現(xiàn)一個(gè)前、后臺(tái) 分工合作、多線程共同完成任務(wù)的簡單ftp客戶端開發(fā)。>實(shí)驗(yàn)5(2):在實(shí)驗(yàn)5(1)開發(fā)出的多線程簡單ftp客戶端程序的基礎(chǔ)上,基于mfc winlnet類的高級(jí)功能,開發(fā)實(shí)現(xiàn)一個(gè)前、后臺(tái)分工合作、多線程共同完成任務(wù)、支 持ft

3、p服務(wù)器多層子目錄操作的增強(qiáng)ftp客戶端。2實(shí)驗(yàn)設(shè)備與實(shí)驗(yàn)環(huán)境> 連接到互聯(lián)網(wǎng)上的ibm pc機(jī)兩臺(tái)> 計(jì)算機(jī)破件要求:intel pcntium5 處理器、512mb以上內(nèi)存,ethernet網(wǎng)卡> 計(jì)算機(jī)軟件要求:ms win2k/xp操作系統(tǒng),tcp/ip協(xié)議,visual c+6.0系統(tǒng)> ftp服務(wù)器軟件使用ftpserv.exe,見本課程第6章課件附錄3,運(yùn)行該軟件前須先檢 查或修改相應(yīng)配置,然后啟用運(yùn)行服務(wù)器程序,以備在本實(shí)驗(yàn)后續(xù)各步驟中使用。3實(shí)驗(yàn)內(nèi)容與步驟3.1在單線程的基礎(chǔ)工程文件上改造使用本課程第6章課件附錄2給出的基于win32 dialog的f

4、tp客戶端工程文件源代碼, 看懂該工程的源程序,并在其上進(jìn)行改造:實(shí)驗(yàn)5(1):首先將單線程的源程序改造為mfc前、后臺(tái)工作的多線程程序,并測試、 運(yùn)行通過;根據(jù)改造示的多線程簡單ftp客戶端程序,撰寫實(shí)驗(yàn)報(bào)告5(l)o實(shí)驗(yàn)5(2):在實(shí)驗(yàn)5(1)成功的基礎(chǔ)上,再在對(duì)話框中添加控件,增加下述3.2節(jié)中用 紅字標(biāo)出的各項(xiàng)功能,以支持ftp服務(wù)器多層子目錄操作,實(shí)現(xiàn)一個(gè)多線程功能增強(qiáng)型ftp 客戶端;根據(jù)改造后的多線程增強(qiáng)型ftp客戶端程序,撰寫實(shí)驗(yàn)報(bào)告5(2)。3.2程序?qū)崿F(xiàn)的功能實(shí)驗(yàn)5(1)中的程序要求基于mfc winlnet類編程、mfc多線程編程,使用工作線程分 別完成查詢、下載、上傳功

5、能,實(shí)現(xiàn)一個(gè)簡單的ftp客戶端。實(shí)驗(yàn)5(1)要求:mfc多線程編程使用工作線程:程序的主線程處理應(yīng)用程序的主界面、完成客戶和對(duì) 話框中各控件的交互;程序的三個(gè)子線程進(jìn)行后臺(tái)實(shí)際的網(wǎng)絡(luò)1/0通信,三個(gè)子線程分別完 成査詢、下載、上傳時(shí)與f(p服務(wù)器z間的各種交互。實(shí)驗(yàn)5(2)中的程序要求在實(shí)驗(yàn)5(1)的基礎(chǔ)上,進(jìn)一步增強(qiáng)功能,實(shí)現(xiàn)一個(gè)增強(qiáng)型的ftp 客戶端功能:在對(duì)話框屮增加-個(gè)“服務(wù)器當(dāng)前口錄”列表框,登錄ftp服務(wù)器、在ftp服 務(wù)器主1錄和多層了1錄問能門由切換、服務(wù)器當(dāng)前所在的門錄可以在ftp客戶端查詢到并 顯示在“服務(wù)器出前h錄”列表框中、這個(gè)增強(qiáng)型的ftp客戶端町以從服務(wù)器當(dāng)前冃錄下

6、載 文件、也可從客戶端上傳文件到服務(wù)器的這個(gè)當(dāng)前目錄。實(shí)驗(yàn)5(2)要求:(1) mfc多線程編程要求使用工作線程:程序的主線程處理應(yīng)用程序的主界面、完成客 戶和對(duì)話框中各控件的交互;程序的三個(gè)子線程進(jìn)行后臺(tái)實(shí)際的網(wǎng)絡(luò)i/o通信,三個(gè)子線程 分別完成查詢、下載、上傳時(shí)與ftp服務(wù)器之間的各種交互。(2) 使用 cinternetsession 類、cinternetconnection 類、cinternetfile 類和 cfilefind 類, 在客八機(jī)端的對(duì)話框中輸入ftp服務(wù)器名、登錄用八名、口令,登錄ftp服務(wù)器,在“服務(wù) 器當(dāng)前冃錄”欄中就示ftp服務(wù)器上的當(dāng)前h錄,并在“文件h錄列

7、表框”中顯示ftp服務(wù) 器當(dāng)前i錄下的所有文件和子目錄名,若在其中選擇某文件名,能下載該文件到客戶端,若 在其中選擇某子目錄名,則按卞“查詢”按鈕后,當(dāng)前目錄轉(zhuǎn)至該子目錄下,并在“服務(wù)器 當(dāng)前冃錄”欄中顯示轉(zhuǎn)到的新子冃錄名,在“文件冃錄列表框”中顯示flp服務(wù)器該當(dāng)前子 目錄下的所有文件和了目錄名;從客戶機(jī)端上傳文件到ftp服務(wù)器時(shí),也要能上傳到服務(wù)器 上“服務(wù)器當(dāng)前目錄”欄小指定的目錄中。3.3實(shí)驗(yàn)步驟(1) 解壓縮本課程第6章課件附錄3的ftpserv.rar文件,然后運(yùn)行簡易ftp服務(wù)器軟件 ftpserv.exe,并檢查或增補(bǔ)修改其相應(yīng)配置:選擇setup下拉菜單,檢查前3個(gè)子項(xiàng),對(duì)第

8、個(gè)users子項(xiàng),已輸入有3個(gè)用戶名userl, user2, user3, 口令分別為111, 222, 333, ftp服務(wù)器的虛擬根冃錄設(shè)置為d:ftproot,其下還設(shè)冇了冃錄d:ftprootsubdir,這三個(gè) 用戶在這兩個(gè)目錄屮的權(quán)限都設(shè)直為可讀、可寫、子目錄可列出,可以保持其原設(shè)直,也可 增加新用戶、增補(bǔ)修改相應(yīng)設(shè)置;對(duì)第二個(gè) ftp 了項(xiàng),已做如下設(shè)置:ftp port 為 21 ,no user limit, show all users commands in main window,可以保持其原設(shè)置;對(duì)第三個(gè)ip access子項(xiàng),已a(bǔ)llow的ip為

9、,可以保持其原來設(shè)置或做修改。 如果做了修改,應(yīng)在相應(yīng)的子項(xiàng)中選擇“save”按鈕,保存上面所做的修改。運(yùn)行該ftpserv.exe,在server卜拉菜單屮選“sum”,啟動(dòng)該服務(wù)器。(2) 完成實(shí)驗(yàn)5(1)中規(guī)定的任務(wù):在木課程第6章課件附錄2的ftp客戶端工程文件基礎(chǔ)上,參考教科書7.4中多線程編 程的實(shí)現(xiàn)原理和和應(yīng)舉例,完成対原工程文件的多線程修改和增補(bǔ),將原程序改進(jìn)為多線程 程序,前、后臺(tái)協(xié)作工作,登錄ftp服務(wù)器,在虛擬冃錄“/”下列出文件、子冃錄,并能在 目錄“/”屮下載、上傳文件,使簡單ftp客戶端的多線程程序調(diào)試、運(yùn)行通過;(3) 在完成實(shí)驗(yàn)5(1)任務(wù)后,再完成實(shí)驗(yàn)5(2)

10、規(guī)定的任務(wù):對(duì)工程文件中的ftp客戶端對(duì)話框外觀控件進(jìn)行增強(qiáng),添加“服務(wù)器當(dāng)前目錄”列表框, 修改和增補(bǔ)程序,使其能在ftp服務(wù)器各冃錄中自由切換,實(shí)現(xiàn)一個(gè)在當(dāng)前冃錄中進(jìn)行查詢、 下載、上傳的增強(qiáng)ftp客戶端,調(diào)試、運(yùn)行該客戶端程序。提示一:修改和增補(bǔ)程序時(shí),要學(xué)會(huì)查詢vc+mfc類庫速查手冊(cè)、vc+win32 api參考手冊(cè),根據(jù)口己程序所需要的功能,在兩本手冊(cè)中查詢相應(yīng)的類和相應(yīng)的類成員 函數(shù),或查詢相應(yīng)的win32 api函數(shù),并能正確使用這些函數(shù),以完成相應(yīng)的任務(wù)。提示二:由于查詢、下載、上傳原來是用三個(gè)獨(dú)立的線程分別實(shí)現(xiàn)的,每個(gè)線程中都經(jīng) 歷了創(chuàng)建會(huì)話類對(duì)象、創(chuàng)建ftp連接類對(duì)象、進(jìn)

11、行杳詢、下載或上傳操作、然示撤銷ftp連 接類對(duì)象、撤銷會(huì)話類對(duì)象這樣的全過程,因此,一個(gè)線程屮設(shè)置的“ftp服務(wù)器當(dāng)前目錄” 在另一個(gè)線程中不再有效,為了能使查詢、下載、上傳三個(gè)線程少“ftp服務(wù)器當(dāng)前目錄” 建立冇機(jī)的聯(lián)系,建議在增強(qiáng)的ftp客戶端主程序中設(shè)置一個(gè)全局變量strcurrentdir,每當(dāng) ftp服務(wù)器上的當(dāng)前目錄改變時(shí),將該改變的目錄反映到全局變量strcurrentdir屮,并顯示 到對(duì)話框的“服務(wù)器當(dāng)前目錄”列表松控件中,這樣,一個(gè)線程就能在程序?qū)υ捒蚪缍袭?dāng) 時(shí)顯示的(由另一個(gè)線程設(shè)置、顯示的)“服務(wù)器當(dāng)前hl錄”下進(jìn)行下載、上傳操作了: 辦法就是在這個(gè)線程中當(dāng)創(chuàng)建會(huì)

12、話類對(duì)象、創(chuàng)建ftp連接類對(duì)象后,用ftp連接類對(duì)彖的成 員函數(shù)setcurrentdirectory(strcurrentdir)設(shè)置一下服務(wù)器當(dāng)前目錄,照此辦理,即可在該目 錄下進(jìn)行相關(guān)操作。3.4從本機(jī)擴(kuò)展到網(wǎng)絡(luò)在本機(jī)測試通過的基礎(chǔ)上,利用2臺(tái)電腦,將其中一臺(tái)電腦作為ftp客戶機(jī)端,另一臺(tái) 電腦作為ftp服務(wù)器端,在網(wǎng)絡(luò)上測試該程序通過。4實(shí)驗(yàn)小結(jié)1)熟練掌握并小結(jié)mfc多線程編程的工作步驟和實(shí)現(xiàn)方法。能在工作線程和用戶接口線 程中,根據(jù)任務(wù)的處理需求,選擇正確的線程類型。2)熟練掌握并小結(jié)mfc winlnet類編程的要點(diǎn),掌握并小結(jié)cinternetsession類、 cinternetconnection 類、cinternetfile 類和 cfilefind 類的創(chuàng)建和使用方法。3)小結(jié)使用vc+mfc類庫速杏手冊(cè)、«vc+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論