




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)報(bào)告使用.NET技術(shù)編寫FTP客戶端學(xué)院(系):計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè):網(wǎng)絡(luò)工程指導(dǎo)老師:學(xué)生姓名:劉凡學(xué)號(hào):11303090122時(shí)間:從2016年1月11日到2016年1月15日網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)使用.NET技術(shù)編寫FTP客戶端目錄1課題任務(wù)及要求1.1.1課題任務(wù)及要求12組員任務(wù)分工2.2.1組員任務(wù)及分工24課題相關(guān)算法及實(shí)現(xiàn)步驟4.4.1 用戶登錄服務(wù)器,列表更新44.2 雙擊事件功能的實(shí)現(xiàn)64.3 登錄失敗獲得服務(wù)器的響應(yīng)信息74.4 刪除指定文件及文件夾84.5 瀏覽上傳文件94.6 上傳文件94.7 下載文件114.8 實(shí)現(xiàn)步驟135實(shí)現(xiàn)功能及操作簡(jiǎn)介
2、.145.1 連接服務(wù)器145.2 服務(wù)器響應(yīng)信息145.3 瀏覽145.4 上傳155.5 下載155.6 刪除165.7 進(jìn)入目錄和返回上級(jí)目錄165.8 退出166實(shí)驗(yàn)結(jié)果及分析1.76.1 用戶登錄結(jié)果176.2 服務(wù)器響應(yīng)信息結(jié)果176.3 瀏覽結(jié)果186.4 上傳結(jié)果186.5 下載結(jié)果196.6 刪除結(jié)果206.7 進(jìn)入目錄及返回上級(jí)目錄結(jié)果216.8 退出217心得體會(huì)228參考文獻(xiàn)23網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)使用.NET技術(shù)編寫FTP客戶端1課題任務(wù)及要求1.1 課題任務(wù)及要求課題:使用.NET技術(shù)編寫FTP客戶端設(shè)計(jì)要求:FTP客戶端:(1)根據(jù)服務(wù)器的IP地址,用戶名,密碼登
3、陸FTP服務(wù)器。(2)客戶端上顯示服務(wù)器響應(yīng)信息。(3)登陸成功后,客戶端上顯示服務(wù)器FTP目錄及文件(目錄和文件顯示加以區(qū)別)。(4)用戶雙擊目錄后可以進(jìn)入該目錄中,也可以雙擊“返回上級(jí)目錄”,返回到上層目錄。(5)用戶將本地文件上傳至FTP服務(wù)器,以及采用多線程技術(shù)從服務(wù)器上下載文件。(6)實(shí)現(xiàn)刪除服務(wù)器上指定的文件和文件夾。課題組人數(shù):限1人。132組員任務(wù)分工2.1組員任務(wù)及分工PPT劉凡11303090122任務(wù)分工:完成程序源碼,編寫實(shí)驗(yàn)文檔和3相關(guān)知識(shí)簡(jiǎn)介3.1 FTPFTP是FileTransferProtocol(文件傳輸協(xié)議)的英文簡(jiǎn)稱,而中文簡(jiǎn)稱為“文傳協(xié)議”。用于Int
4、ernet上的控制文件的雙向傳輸。同時(shí),它也是一個(gè)應(yīng)用程序(Application)?;诓煌牟僮飨到y(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩個(gè)概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上;"上傳"文件就是將文件從自己的計(jì)算機(jī)中拷貝至遠(yuǎn)程主機(jī)上。用Internet語言來說,用戶可通過客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。3.2 Serv-U軟件Serv-U是當(dāng)前眾多的FTP服務(wù)
5、器軟件之一。通過使用Serv-U,用戶能夠?qū)⑷魏我慌_(tái)PC設(shè)置成一個(gè)FTP服務(wù)器,這樣,用戶或其他使用者就能夠使用FTP協(xié)議,通過在同一網(wǎng)絡(luò)上的任何一臺(tái)PC與FTP服務(wù)器連接,進(jìn)行文件或目錄的復(fù)制,移動(dòng),創(chuàng)建,和刪除等。這里提到的FTP協(xié)議是專門被用來規(guī)定計(jì)算機(jī)之間進(jìn)行文件傳輸?shù)臉?biāo)準(zhǔn)和規(guī)則,正是因?yàn)橛辛讼馞TP這樣的專門協(xié)議,才使得人們能夠通過不同類型的計(jì)算機(jī),使用不同類型的操作系統(tǒng),對(duì)不同類型的文件進(jìn)行相互傳遞。3.4 相關(guān)FTP操作命令FtpWebRequest類用于實(shí)現(xiàn)文件傳輸協(xié)議(Ftp)客戶端的操作,用該類的Create方法初始化新的WebRequestX寸象,然后用該類的Method
6、屬性指定當(dāng)前請(qǐng)求的命令是什么,這個(gè)值定義在結(jié)構(gòu)體WebRequestMethods.ftp中,本次程序用到的命令有ListDirectoryDetails獲取文件詳細(xì)列表、DeleteFile刪除文件、RemoveDirectory刪除目錄、DownloadFile下載文件、UploadFile上傳文件等。4課題相關(guān)算法及實(shí)現(xiàn)步驟4.1 用戶登錄服務(wù)器,列表更新privatevoidbtnDenglu_Click(objectsender,EventArgse)FileList=""connect。;publicvoidconnect。listBoxInfo.Items.C
7、lear();tryftpServerIp=txtIp.Text;ftpUserID=txtUsername.Text;ftpPassword=txtPwd.Text;req =(FtpWebRequest)FtpWebRequestCreate(newUri("ftp:/"+ftpServerIp+ "/"+FileList);req.Credentials =new NetworkCredential (ftpUserID, ftpPassword);req.KeepAlive =false ;req.Method =WebRequestMethod
8、s Ftp.ListDirectoryDetails;req.UseBinary =true ;FtpWebResponseresponse=GetFtpResponse(req);listBoxInfo.Items.Add("服務(wù)器返回:"+response.StatusDescription);StreamReaderreader=newStreamReader(response.GetResponseStream();/strings=reader.ReadToEnd();string口ftpDir=s.Split(Environment.NewLine.ToChar
9、Array(),StringSplitOptions.RemoveEmptyEntries);listBoxInfo.Items.AddRange(ftpDir);listBoxInfo.Items.Add("服務(wù)器返回:"+response.StatusDescription);ftpFileBox.Items.Add("返回上級(jí)目錄");for(inti=0;i<ftpDir.Length;i+)string口fileinfo=ftpDiri.Split('');stringtype=null;stringfilename=fi
10、leinfofileinfo.Length-1;if(filename="."|filename=".")continue;elseif(fileinfo0.IndexOf('d')!=-1)type="<目錄>"elsetype="<文件>"ftpFileBox.Items.Add(type+""+filename);reader.Close();response.Close();btnDenglu.Enabled =falsecatch(Excepti
11、onex)MessageBoxShow("登陸失??!");MessageBoxShow(ex.ToString();4.2 雙擊事件功能的實(shí)現(xiàn)privatevoidftpFileBox_MouseDoubleClick(objectsender,MouseEventArgse)tryStringitem=ftpFileBox.SelectedItem.ToString().Split('');stringtype=item0;if(type.Equals("<目錄>")stringfile=item1;FileList+=(f
12、ile+"/");/進(jìn)入目錄ftp:/ServerIp/目錄名/ftpFileBox.Items.Clear();connect。;elseif(ftpFileBox.SelectedItem.ToString()="返回上級(jí)目錄")FileList=""ftpFileBox.Items.Clear();connect。;catch ( Exception ex)MessageBoxShow(ex.Message);4.3登錄失敗獲得服務(wù)器的響應(yīng)信息private FtpWebResponseGetFtpResponse( FtpWe
13、bRequest request) FtpWebResponseresponse = null ;tryresponse = (FtpWebResponserequest.GetResponse();return response;catch ( WebException err)listBoxInfo.Items.Add(”出現(xiàn)異常,F(xiàn)TP返回狀態(tài):"+ err.Status.ToString();FtpWebResponsee =(FtpWebResponseerr.Response;listBoxInfo.Items.Add("Status Code :"+
14、 e.StatusCode);listBoxInfo.Items.Add("Status Description :"+ e.StatusDescription);returnnull;catch(Exceptionerr)listBoxInfo.Items.Add(err.Message);returnnull;4.4刪除指定文件及文件夾privatevoidbtnShanchu_Click(objectsender,EventArgse)Stringitem=ftpFileBox.SelectedItem.ToString().Split('');str
15、ingtype=item0;stringfile=FileList+item1;if(ftpFileBox.SelectedIndex>-1)tryif(type.Equals("<文件>")req=(FtpWebRequest)FtpWebRequestCreate(newUri("ftp:/"+ftpServerIp+"/"+file);req.Credentials=newNetworkCredential(ftpUserID,ftpPassword);req.KeepAlive=false;true ;req
16、.UseBinary=req.Method =WebRequestMethodsFtp.DeleteFile;FtpWebResponseresponse=(FtpWebResponsereq.GetResponse();MessageBoxShow("刪除文件成功!");elsereq =(FtpWebRequest)FtpWebRequestCreate(newUri("ftp:/"+ftpServerIp +"/" + file);req.Credentials =newNetworkCredential(ftpUserID,f
17、tpPassword);false ;req.KeepAlive=req.UseBinary=true;req.Method=WebRequestMethodsFtp.RemoveDirectory;FtpWebResponseresponse=(FtpWebResponsereq.GetResponse();MessageBoxShow("刪除成功!");ftpFileBox.Items.Clear();connect。;catch(Exceptionex)MessageBoxShow(ex.Message);4.5 瀏覽上傳文件privatevoidbtnLiulan_
18、Click(objectsender,EventArgse)if(btnDenglu.Enabled=true)MessageBoxShow("t!?登?陸?FTP小笠?器+!?");elseopenFileDialog1.ShowDialog();txtShangchuan.Text=openFileDialog1.FileName;/獲取文件路徑和文件名4.6 上傳文件privatevoidbtnShangchuan_Click(objectsender,EventArgse)if(txtShangchuan.Text="")MessageBoxSh
19、ow("沒?有甌選?擇?要癮上?傳?的?文?件t!?");elsestringFileSites=txtShangchuan.Text;FileInfofileInf=newFileInfo(FileSites);+ "/" + fileInf.Name);req.Credentials =req.KeepAlive =req.Method =req.UseBinary =req=(FtpWebRequest)FtpWebRequestCreate(newUri("ftp:/"+ftpServerIpnewNetworkCredent
20、ial(ftpUserID,ftpPassword);false;WebRequestMethodsFtp.UploadFile;true;byte口buff=newbyte1024;/1024為緩沖區(qū)大小intContentLen;/打開一個(gè)文件流上傳文件FileStreamfs=fileInf.OpenRead();tryStreamstrm=req.GetRequestStream();ContentLen=fs.Read(buff,0,1024);/流內(nèi)容沒有結(jié)束while(ContentLen!=0)/把內(nèi)容從filestream寫入uploadstreamstrm.Write(bu
21、ff,0,ContentLen);ContentLen=fs.Read(buff,0,1024);strm.Close();/關(guān)閉流fs.Close();txtShangchuan.Text=""MessageBoxShow("上傳成功!");ftpFileBox.Items.Clear();connect。;catch(Exceptionex)MessageBoxShow(ex.ToString();4.7 下載文件privatevoidbtnXiazai_Click(objectsender,EventArgse)if(ftpFileBox.Sele
22、ctedIndex>-1)Stringitem=ftpFileBox.SelectedItem.ToString().Split('');stringtype=item0;stringfile=FileList+item1;if(type.Equals("<文件>")tryftpServerIp +"/" + file);req.Credentials =req.Method =req.UseBinary =req=(FtpWebRequest)FtpWebRequestCreate(newUri("ftp:/
23、"+newNetworkCredential(ftpUserID,ftpPassword);WebRequestMethodsFtp.DownloadFile;true;SaveFileDialogsave=newSaveFileDialog();save.FileName=file;if(save.ShowDialog()=DialogResult.OK)FileStreamoutputStream=newFileStream(save.FileName,FileMode.Create);FtpWebResponseresponse=(FtpWebResponsereq.GetRe
24、sponse();StreamftpStream=response.GetResponseStream();intreadCount;byte口buffer=newbyte1024;readCount=ftpStream.Read(buffer,0,1024);while(readCount>0)outputStream.Write(buffer,0,readCount);readCount=ftpStream.Read(buffer,0,1024);ftpStream.Close();outputStream.Close();response.Close();MessageBoxSho
25、w("下載成功!");ftpFileBox.Items.Clear();connect。;catch(Exceptionex)MessageBoxShow(ex.ToString();elseMessageBoxShow("不能下載目錄!");elseMessageBoxShow("請(qǐng)選擇文件進(jìn)行下載!");4.8 實(shí)現(xiàn)步驟1 .窗體UI布局設(shè)計(jì)。2.FTP服務(wù)器的搭建。3.連接FTP服務(wù)器,實(shí)現(xiàn)用戶登錄。4.雙擊事件。5.服務(wù)器響應(yīng)。6.上傳文件。7.下載文件。8.刪除文件及目錄。8.退出程序。網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)使用.NET技術(shù)編
26、寫FTP客戶端5實(shí)現(xiàn)功能及操作簡(jiǎn)介5.1 連接服務(wù)器圖5-1連接服務(wù)器5.2 服務(wù)器響應(yīng)信息圖5-2服務(wù)器響應(yīng)信息5.3瀏覽14網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)使用.NET技術(shù)編寫FTP客戶端登錄請(qǐng)登陸FTP黑芳器!圖5-3(a)瀏覽圖5-3(b)瀏覽5.4上傳5.5下載16文件列表文件操作F:liufanDownLciadXfunny,png瀏覽上傳下.圖5-4上傳網(wǎng)絡(luò)程序開發(fā)課程設(shè)計(jì)使用.NET技術(shù)編寫FTP客戶端22FTF用條器氈址現(xiàn)址:l£T.O.a.I3.另存為»計(jì)譚叫學(xué)習(xí)覆*'liufjnCQWTiLQddsk-宜的國(guó)5.pdf苔烹H品:a臺(tái)j|RR漁3®
27、iT«小方樂慘改日用文件更作:*-計(jì)?m&Win7»643uDO口軟件隔一學(xué)習(xí)舊.眼落W逅回:1融Opeai'iLCASCIIMt,gnAMh的faiJmUMMUMinau1inisqvcwAimfllTjwI+門,用的鳥山圖5-5下載5.6刪除文件列表H1目文文目目目目<W<<<<,",統(tǒng)統(tǒng)羹teelo!樂戲文>>1i-uTLXn-TJf愿原4卷桅口圖5-6刪除5.7進(jìn)入目錄和返回上級(jí)目錄文件列表圖5-7進(jìn)入目錄和返回上級(jí)目錄5.8退出6實(shí)驗(yàn)結(jié)果及分析6.1 用戶登錄結(jié)果分析:通過連接FTP服務(wù)器,實(shí)現(xiàn)用
28、戶的登錄口1Formlftf而務(wù)器地址地址:FIT服勞器登錄用戶名;liufui密碼;mm登錄文件列表刪除pd案 .答C卷 am 黑 儲(chǔ) unpjTi -i rj 原印 統(tǒng)統(tǒng) 1 t股 si文件操作一一»:上-一丁瀏覽服務(wù)器響應(yīng)信.息drwxrwxrwxdrvrxTwxrwK1user1usergroupgroupJmDJan1323:181323.18.drvfKTWxrwK.1usergroup0Jan1323146pEI"rw-rw-rw"1usergroup389204D«c1315:061-rw-rw-rw-1usergrou
29、p733030Dtc1315:0B齷datacoMiectionfor/bin/ls.:150OpeningASCIImode388bytestransferred.0.38IS/sec.月員勞器返回:226TraiiEEercomplete.退出圖6-1用戶登錄結(jié)果6.2 服務(wù)器響應(yīng)信息結(jié)果分析:通過FtpWebRespons或得服務(wù)器的響應(yīng)信息.服勞器響應(yīng)信息服務(wù)器返回:150OpeningASCIImodedatacoimactionfor/bin/ls.1usergroup0J皿1410:04drwxrwxrwx1usergroup0Jan141004-rw-rw-rw-1線。up10
30、587J亞1410:0Qftptxtdrwxrwxrwx1usergroup0Jan1323:46ppt-rw-rw-rw-r冒一i卅一rw噩務(wù)器返回:11226uwuserJTraosfer安oupgroupcomplete.3892045733030D"452bytes1transferred,0.44KB/sec.退出圖6-2(a)服務(wù)器響應(yīng)信息結(jié)果期棄器響應(yīng)信息出現(xiàn)異常,F(xiàn)TF返回狀態(tài):FrctocolErrorStatusCode:MotLoggedlnStatusDescription:530Sort咒noABDNTMOUSaccessallowed.圖6-2(b)服務(wù)器
31、相應(yīng)信息結(jié)果6.3 瀏覽結(jié)果分析:控件openFileDialog打開文件路徑乂什保I卜A*irii-iiHirnrniinriiiBiriini*/.F:liufanDQwiiLa&dftp.txt:劉第:上傳不載圖6-3瀏覽結(jié)果6.4 上傳結(jié)果分析:通過文件路徑找到文件信息,用fs.stream文件流實(shí)現(xiàn)上傳文件圖6-4(a)上傳結(jié)果級(jí)目錄,dec圖6-4(b)上傳結(jié)果6.5 下載結(jié)果分析:創(chuàng)建流outputstream輸出文件圖6-5(a)下載結(jié)果l_E產(chǎn)計(jì)算機(jī)學(xué)習(xí)(F:)liufanDownLoadT度素/fufsnDownlosd二桌面二最近訪問的位置庫, PPTW頻三暴鳳勖昨1視頻名稱_ ftp.txt修改日期類型2016/1/14 10:14立小色檔大小F)奉患查看時(shí)工具幫助四)包含到庫中,共享,刻錄軌建史I駿圖6-5(b)下載結(jié)果6.6 刪除結(jié)果分析:前綴type為“文件”時(shí)刪除文件;前綴type為“目錄”刪除目消定圖6-6(a)刪除結(jié)果文件列表£)?.M案管楊口f卷8m 梟 醺 JJ - BJJ- E- LU 二 1IJ 原原統(tǒng)統(tǒng)i>>>>>>«<s汨唱說隼圖6-6(b)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙生意轉(zhuǎn)讓協(xié)議書
- 醫(yī)療物資購買協(xié)議書
- 員工受傷和解協(xié)議書
- 醫(yī)院大門管理協(xié)議書
- 醫(yī)療定向援助協(xié)議書
- 合伙養(yǎng)殖賠錢協(xié)議書
- 北京離職補(bǔ)償協(xié)議書
- 品牌代理轉(zhuǎn)讓協(xié)議書
- 合同期滿拆伙協(xié)議書
- 員工轉(zhuǎn)正合同協(xié)議書
- 骨科疑難病種清單(2021年版)
- 農(nóng)村常用法律法規(guī)知識(shí)講座課件(村干部培訓(xùn))
- 電力工程電纜敷設(shè)記錄表
- 調(diào)機(jī)品管理規(guī)定
- DB63∕T 1683-2018 青海省農(nóng)牧區(qū)公共廁所工程建設(shè)標(biāo)準(zhǔn)
- 專題21 當(dāng)代世界發(fā)展的特點(diǎn)與主要趨勢(shì)含答案解析2023年山東歷史新高考【3年真題+1年??肌?/a>
- 六年級(jí)下冊(cè)數(shù)學(xué)課件--總復(fù)習(xí)《圖形的運(yùn)動(dòng)》北師大版.--共20張PPT
- 加油站操作員職業(yè)技能鑒定試習(xí)題庫(中級(jí)工版)
- 最新房地產(chǎn)開發(fā)預(yù)算表
- 弱電智能化物業(yè)人員人員培訓(xùn)記錄
- 線性代數(shù)期末試題同濟(jì)大學(xué)第五版附答案
評(píng)論
0/150
提交評(píng)論