![計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)書FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view7/M02/34/0D/wKhkGWazTWiAPD8HAACwN4yh4ro177.jpg)
![計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)書FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view7/M02/34/0D/wKhkGWazTWiAPD8HAACwN4yh4ro1772.jpg)
![計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)書FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view7/M02/34/0D/wKhkGWazTWiAPD8HAACwN4yh4ro1773.jpg)
![計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)書FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view7/M02/34/0D/wKhkGWazTWiAPD8HAACwN4yh4ro1774.jpg)
![計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)書FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view7/M02/34/0D/wKhkGWazTWiAPD8HAACwN4yh4ro1775.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)書第3頁(yè)共36頁(yè)四川理工學(xué)院課程設(shè)計(jì)書系別:計(jì)算機(jī)學(xué)院專業(yè):計(jì)算機(jī)網(wǎng)絡(luò)班級(jí):FTP服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)題目:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教師:學(xué)生:目錄第一章序言 31.1課題來源 31.2開發(fā)工具 3第二章系統(tǒng)需求分析 52.1功能需求 52.2系統(tǒng)模型設(shè)計(jì) 52.3系統(tǒng)工作流程設(shè)計(jì) 6第三章系統(tǒng)總體設(shè)計(jì) 63.1需求規(guī)定 63.2運(yùn)行環(huán)境 73.3基本設(shè)計(jì)概念和處理流程 7第四章系統(tǒng)詳細(xì)設(shè)計(jì) 134.1實(shí)現(xiàn)功能 134.2函數(shù)說明 134.2.1界面設(shè)計(jì)代碼 134.2.2功能實(shí)現(xiàn)函數(shù) 13第五章系統(tǒng)實(shí)現(xiàn) 205.1界面設(shè)計(jì)的實(shí)現(xiàn) 205.1.1連接服務(wù)器 205.1.2獲取文件列表 215.1.3斷開服務(wù)器 215.1.4上傳文件 225.1.5下載 245.1.6重命名 265.1.7刪除 275.1.8刷新 295.1.9返回上一目錄 295.1.10查看日志信息 30第六章測(cè)試、運(yùn)行與維護(hù) 316.1測(cè)試 316.2單元測(cè)試 316.3功能測(cè)試 326.4安裝、部署測(cè)試 326.5系統(tǒng)綜合測(cè)試 336.6系統(tǒng)運(yùn)行及維護(hù) 33第七章總結(jié) 34第八章參考文獻(xiàn) 34第一章序言——楊小蘭1.1課題來源FTP(FileTransferProtocol,FTP)是TCP/IP網(wǎng)絡(luò)上兩臺(tái)計(jì)算機(jī)傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。FTP是一個(gè)8位的客戶端-服務(wù)器協(xié)議,能操作任何類型的文件而不需要進(jìn)一步處理,就像MIME或Unencode一樣。但是,F(xiàn)TP有著極高的延時(shí),這意味著,從開始請(qǐng)求到第一次接收需求數(shù)據(jù)之間的時(shí)間會(huì)非常長(zhǎng),并且不時(shí)的必需執(zhí)行一些冗長(zhǎng)的登陸進(jìn)程。FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進(jìn)口。當(dāng)數(shù)據(jù)通過數(shù)據(jù)流傳輸時(shí),控制流處于空閑狀態(tài)。而當(dāng)控制流空閑很長(zhǎng)時(shí)間后,客戶端的防火墻會(huì)將其會(huì)話置為超時(shí),這樣當(dāng)大量數(shù)據(jù)通過防火墻時(shí),會(huì)產(chǎn)生一些問題。此時(shí),雖然文件可以成功的傳輸,但因?yàn)榭刂茣?huì)話會(huì)被防火墻斷開,傳輸會(huì)產(chǎn)生一些錯(cuò)誤。FTP客戶端主要目標(biāo)是:促進(jìn)文件的共享(計(jì)算機(jī)程序或數(shù)據(jù));鼓勵(lì)間接或者隱式的使用遠(yuǎn)程計(jì)算機(jī);向用戶屏蔽不同主機(jī)中各種文件存儲(chǔ)系統(tǒng)的細(xì)節(jié);可靠和高效的傳輸數(shù)據(jù)。因此,開發(fā)FTP客戶端成為一個(gè)很有必要的事情。1.2開發(fā)工具隨著程序設(shè)計(jì)技術(shù)的改革和計(jì)算機(jī)環(huán)境的改變,Java語(yǔ)言也得到了迅速發(fā)展。一方面,C++等面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的發(fā)展為Java提供了基礎(chǔ)。事實(shí)上,Java也大量繼承了C以及C++的成果,并增加了體現(xiàn)程序設(shè)計(jì)發(fā)展?fàn)顟B(tài)的功能。另一方面,網(wǎng)絡(luò)及Internet的發(fā)展對(duì)程序設(shè)計(jì)提出了新的要求,為Java的發(fā)展注入了強(qiáng)大的動(dòng)力。正是Internet的快速發(fā)展和普及,改變了傳統(tǒng)的計(jì)算模式,促進(jìn)了Java的普及與流行。它最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語(yǔ)言,來解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問題。由于這些智能化家電的市場(chǎng)需求沒有預(yù)期的高,Sun放棄了該項(xiàng)計(jì)劃。就在Oak幾近失敗之時(shí),隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。Java編程語(yǔ)言的風(fēng)格十分接近C、C++語(yǔ)言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在JavaSE1.5版本中,Java又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語(yǔ)言特性。Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語(yǔ)言和解釋執(zhí)行計(jì)算機(jī)語(yǔ)言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過,每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了Java程序的運(yùn)行效率。但在J2SE1.4.2發(fā)布后,Java的執(zhí)行速度有了大幅提升。與傳統(tǒng)程序不同,Sun公司在推出Java之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計(jì)的Java開發(fā)公司被要求所設(shè)計(jì)的Java軟件必須相互兼容。“Java語(yǔ)言靠群體的力量而非公司的力量”是Sun公司的口號(hào)之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。Java編程語(yǔ)言的主要特性是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語(yǔ)言。第二章系統(tǒng)需求分析——許平2.1功能需求1.實(shí)現(xiàn)一個(gè)圖形用戶界面的FTP客戶端,保證文件的安全傳輸和存儲(chǔ)。2.通過輸入服務(wù)器地址、用戶名和密碼、可以實(shí)現(xiàn)遠(yuǎn)程FTP主機(jī)的登錄。3.提供本地文件的上傳功能,可對(duì)FTP主機(jī)文件進(jìn)行下載、上傳、刪除、重命名等文件操作。4.可以查看一系列的操作的日志信息。2.2系統(tǒng)模型設(shè)計(jì)控制進(jìn)程控制進(jìn)程數(shù)據(jù)傳送進(jìn)程用戶接口命令與應(yīng)答控制連接數(shù)據(jù)連接文件傳輸數(shù)據(jù)傳送進(jìn)程控制進(jìn)程服務(wù)器客戶端FTP的基本模型2.3系統(tǒng)工作流程設(shè)計(jì)客戶端用戶客戶端用戶登錄登錄驗(yàn)證操作內(nèi)容列表查看文件列表連接成功至服務(wù)器端上傳文件重命名文件上翻文件列表刪除文件下翻文件列表下載文件文件管理連接失敗退出FTP設(shè)計(jì)總流程圖FTP設(shè)計(jì)總流程圖第三章系統(tǒng)總體設(shè)計(jì)——楊小蘭3.1需求規(guī)定3.1.1FTP的文件上傳及下載功能:類似于普通ftp的文件上傳和下載功能。用戶輸入ftp的服務(wù)器ip及用戶名,密碼,連接服務(wù)器并上傳或下載用戶指定的文件。如果用戶不輸入用戶名,密碼則默認(rèn)為匿名登錄??梢砸粤斜淼男问斤@示服務(wù)器連接信息,以表格的形式顯示正下載文件的信息。具有站內(nèi)搜索功能。資源實(shí)時(shí)檢索功能:提供一個(gè)強(qiáng)大的搜索引擎功能,用戶只需提供關(guān)鍵字和需要檢索的資源的類型,就能檢索到上面所述四種子平臺(tái)上的所有相關(guān)資源,并且列出來的資源都是可使用的。資源預(yù)覽功能:對(duì)于服務(wù)器上的某些資源,用戶可以選擇預(yù)覽,以確定是否下載。資源統(tǒng)計(jì)信息的功能:包括最近更新的資源,網(wǎng)上評(píng)論較熱門的資源等。提供一個(gè)詳細(xì)的列表,方便用戶瀏覽。.2.系統(tǒng)的速度要在用戶可接受的范圍內(nèi),但考慮到需要實(shí)時(shí)檢測(cè)服務(wù)器的可用性,對(duì)資源實(shí)時(shí)搜索的速度可以有較低的要求。ftp的文件上傳和下載速度要盡量的接近于普通ftp的速度。3.1.2.系統(tǒng)要有較高的可靠性,可恢復(fù)性。3.1.2.系統(tǒng)要有良好的接口,以適應(yīng)增加資源平臺(tái),增加資源類型,增加相關(guān)的資源獲取功能的需求;并留有服務(wù)器接口,適應(yīng)對(duì)以后實(shí)現(xiàn)服務(wù)器功能的需要;同時(shí)系統(tǒng)還需要具有跨平臺(tái)功能。3.1.3于ftp和資源實(shí)時(shí)檢索功能系統(tǒng)的輸入數(shù)據(jù)分為兩種類型,如果用戶已知服務(wù)器ip,用戶名,密碼,則輸入數(shù)據(jù)為服務(wù)器ip,用戶名,密碼;如果用戶只知道需要的資源名稱和類型,則輸入需要的資源名稱和類型。系統(tǒng)輸出為用戶需要的資源列表。并下載用戶選擇的文件。對(duì)于預(yù)覽功能,用戶需要選擇要預(yù)覽的文件,系統(tǒng)輸出該文件的一部分或全部?jī)?nèi)容,如果用戶選擇保存預(yù)覽內(nèi)容,則保存。3.1.4系統(tǒng)需要記錄用戶最近連接過的ftp的地址,用戶名,密碼及該站點(diǎn)的文件列表。3.1.5具有一定的容錯(cuò)能力,能檢測(cè)用戶的錯(cuò)誤輸入并給出錯(cuò)誤提示,能檢測(cè)資源的可用性錯(cuò)誤并輸出結(jié)果。能進(jìn)行系統(tǒng)故障恢復(fù)。3.1.6因?yàn)楸鞠到y(tǒng)是一個(gè)普遍使用的工具,所以要求界面友好,使用方便,并要求系統(tǒng)具有高穩(wěn)定性,可擴(kuò)充性和運(yùn)行環(huán)境的可轉(zhuǎn)換性。3.2運(yùn)行環(huán)境3.2.1普通pc機(jī),互聯(lián)網(wǎng)。3.2.2操作系統(tǒng):windows或linux其它軟件:jdk該系統(tǒng)早期會(huì)使用北大天網(wǎng)FTP搜索引擎和其他的文件搜索系統(tǒng)如百度的功能實(shí)現(xiàn)資源的檢索,但是在后期時(shí)間允許的情況下會(huì)開發(fā)自己的檢索部分。3.3基本設(shè)計(jì)概念和處理流程活動(dòng)者:用戶,即使用系統(tǒng)進(jìn)行資源上傳下載,站內(nèi)搜索,資源實(shí)時(shí)檢索,資源預(yù)覽和資源統(tǒng)計(jì)信息的人。用況說明:用況名稱:上傳參與者:用戶主要事件流:1.用戶輸入ftp的ip及用戶名,密碼。2.系統(tǒng)連接ftp。3.用戶選擇資源并選擇上傳功能。4.系統(tǒng)運(yùn)行上傳功能,并顯示資源上傳信息。異常事件流:1.用戶輸入的ftp無法連接。2.顯示ftp無法連接,并提示原因,如無法找到此ftp,用戶名或密碼錯(cuò)誤,ftp連接人數(shù)已滿等等。異常事件流:1.資源上傳出錯(cuò)。2.顯示資源上傳錯(cuò)誤,并提示原因,如無上傳權(quán)限,ftp空間已滿等等。用況名稱:下載參與者:用戶主要事件流:1.用戶輸入ftp的ip及用戶名,密碼。2.系統(tǒng)連接ftp。3.用戶選擇資源并選擇下載功能。4.系統(tǒng)運(yùn)行下載功能,并顯示資源下載信息。異常事件流:1.用戶輸入的ftp無法連接。2.顯示ftp無法連接,并提示原因,如無法找到此ftp,用戶名或密碼錯(cuò)誤,ftp連接人數(shù)已滿等等。異常事件流:1.資源下載出錯(cuò)。2.顯示資源下載錯(cuò)誤,并提示原因,如無下載權(quán)限,用戶磁盤空間已滿等等。用況名稱:站內(nèi)搜索參與者:用戶主要事件流:1.用戶輸入需要搜索的資源名稱關(guān)鍵字。2.系統(tǒng)進(jìn)行站內(nèi)搜索并顯示搜索結(jié)果。用況名稱:資源實(shí)時(shí)搜索參與者:用戶主要事件流:1.用戶輸入需要搜索的資源名稱關(guān)鍵字,選擇需要的資源類型。2.系統(tǒng)進(jìn)行實(shí)時(shí)檢索。3.輸出檢索結(jié)果。4.用戶在檢索結(jié)果中選擇需要的資源。5.系統(tǒng)連接用戶選擇的資源,并顯示。異常事件流:1.實(shí)時(shí)檢索出錯(cuò)。2.顯示錯(cuò)誤。用況名稱:預(yù)覽參與者:用戶主要事件流:1.用戶選擇需要預(yù)覽的資源并選擇預(yù)覽功能。2.系統(tǒng)顯示資源的內(nèi)容。3.用戶選擇保存預(yù)覽資源。4.系統(tǒng)將該資源保存到用戶選擇的目錄。異常事件流:1.預(yù)覽出錯(cuò)。2.系統(tǒng)顯示出錯(cuò)信息。用況名稱:統(tǒng)計(jì)資源信息參與者:用戶主要事件流:1.用戶輸入需要統(tǒng)計(jì)信息的資源類型。2.系統(tǒng)統(tǒng)計(jì)資源的信息。3.顯示資源的統(tǒng)計(jì)信息。異常事件流:1.統(tǒng)計(jì)資源信息出錯(cuò)。2.系統(tǒng)顯示出錯(cuò)信息。系統(tǒng)的主要使用流程:2.4結(jié)構(gòu)系統(tǒng)物理結(jié)構(gòu)圖:圖2系統(tǒng)物理結(jié)構(gòu)圖系統(tǒng)模塊圖圖3系統(tǒng)模塊圖
ui:系統(tǒng)界面部分,負(fù)責(zé)接受用戶輸入,顯示系統(tǒng)輸出,負(fù)責(zé)其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點(diǎn)中搜索用戶需要的資源。ui部分調(diào)用common部分的功能讀取xml文件中保存的界面元素屬性信息,用戶最近訪問過的10個(gè)ftp信息,用戶選擇的下載的ftp內(nèi)容列表及其他需要通過xml文件保存的信息。client:實(shí)現(xiàn)ftp客戶端的功能,ftp連接,ftp上傳及下載:上傳或下載用戶指定的資源,并返回相應(yīng)的信息。search:資源實(shí)時(shí)檢索部分,根據(jù)用戶輸入的資源名稱關(guān)鍵字,資源類型和選擇的檢索方式檢索用戶需要的資源,并驗(yàn)證資源的可用性,返回可用資源及其大小,速度等相關(guān)信息。preview:資源預(yù)覽部分,顯示用戶選擇的資源的部分內(nèi)容,以使用戶決定是否需要該資源。preview部分調(diào)用common部分讀取屬性文件的內(nèi)容以設(shè)置預(yù)覽資源內(nèi)容的顯示格式。2.5功能需求與系統(tǒng)模塊的關(guān)系Cilentuisearch統(tǒng)計(jì)資源信息previewftp上傳及下載√資源站內(nèi)搜索√資源實(shí)時(shí)檢索√統(tǒng)計(jì)資源信息√預(yù)覽√第四章系統(tǒng)詳細(xì)設(shè)計(jì)——任杰4.1實(shí)現(xiàn)功能用戶登陸、用戶退出、文件上傳、文件下載、文件重命名文件刪除、上翻文件目錄、下翻文件目錄界面實(shí)現(xiàn)部分:設(shè)計(jì)為一個(gè)用戶界面,上面包括各種用戶按鈕、文本輸入欄、狀態(tài)欄等等。具體如下:服務(wù)器地址信息輸入欄、端口信息輸入欄、用戶名、密碼輸入欄、用戶登陸(連接)按鈕、用戶退出(斷開連接)按鈕、服務(wù)器文件顯示列表框、下載文件按鈕、上傳文件按鈕、重命名文件按鈕、刪除文件按鈕、上一級(jí)目錄按鈕,下一級(jí)目錄按鈕,狀態(tài)欄。4.2函數(shù)說明4.2.1界面設(shè)計(jì)代碼每個(gè)按鈕對(duì)象注冊(cè)監(jiān)聽器對(duì)應(yīng)相關(guān)的業(yè)務(wù)邏輯,調(diào)用FtpBean類中的對(duì)應(yīng)方法。下面是頁(yè)面部分實(shí)現(xiàn)的主要代碼以及相關(guān)說明:packageftp;importjava.awt.event.*;importjava.awt.*;importjava.util.*;importjava.util.List;importjava.util.StringTokenizer;importjava.io.*;importjavax.swing.*;importjavax.swing.event.*;publicclassFTPextendsJFrame{ FtpBeanftp=newFtpBean(); //FTP客戶端對(duì)象privateFileWriterwrite;privatePrintWriterout;privateDatetime;privateJTextFieldurl=newJTextField();//FTP服務(wù)器地址privateJTextFieldport=newJTextField();//FTP服務(wù)器端口privateJTextFieldusername=newJTextField();//用戶名privateJTextFieldpassword=newJTextField();//密碼privateJTextFieldstatus=newJTextField();//當(dāng)前狀態(tài)privateJButtonconnectButton=newJButton("連接");//連接按鈕privateJButtoncloseButton=newJButton("斷開連接");//斷開連接按鈕privateJPopupMenupopup=newJPopupMenu();;privateJMenuItemrefresh=newJMenuItem("刷新");//右鍵彈出菜單privateJMenuItemdelete=newJMenuItem("刪除");privateJMenuItemdownload=newJMenuItem("下載");privateJMenuItemupload=newJMenuItem("上傳");privateJMenuItemrename=newJMenuItem("重命名");privateJMenuItemupDir=newJMenuItem("上級(jí)目錄");privateJMenuItemshowLog=newJMenuItem("顯示日志信息");finalDefaultListModelm=newDefaultListModel();//顯示文件列表JListfileList=newJList(m);JScrollPanefileScrollPane; privateDimensionfaceSize=newDimension(400,600);//框架大小publicFTP(){init();createPopup();//彈出菜單time=newDate();try{write=newFileWriter("log.txt",true);out=newPrintWriter(write,true);}catch(IOExceptionioe){ ioe.printStackTrace();}status.setEditable(false);this.add(status,BorderLayout.SOUTH);//下方connectButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){connect();}});closeButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){close();time=newDate();out.println(time+"離開服務(wù)器:"+url.getText());}});this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加框架的關(guān)閉事件處理this.pack();this.setSize(faceSize);//設(shè)置框架的大小DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);this.setResizable(false);this.setTitle("FTP服務(wù)端"); //設(shè)置標(biāo)題setVisible(true);this.addWindowListener( //關(guān)閉程序時(shí)的操作newWindowAdapter(){publicvoidwindowClosing(WindowEvente){close();System.exit(0);}});}voidinit(){ContainercontentPane=getContentPane();//獲取面板contentPane.setLayout(newBorderLayout());//設(shè)置布局 JPanelup=newJPanel(); //設(shè)置面板上方控件布局up.setLayout(newGridLayout(3,2)); url.setText("26");port.setText("21");username.setText("gaojin");password.setText("gaojin");JPanelno1=newJPanel(); no1.setLayout(newBorderLayout());no1.add(newJLabel("服務(wù)器:"),BorderLayout.WEST);no1.add(url,BorderLayout.CENTER);JPanelno2=newJPanel(); no2.setLayout(newBorderLayout());no2.add(newJLabel("端口號(hào):"),BorderLayout.WEST);no2.add(port,BorderLayout.CENTER);JPanelno3=newJPanel(); no3.setLayout(newBorderLayout());no3.add(newJLabel("用戶名:"),BorderLayout.WEST);no3.add(username,BorderLayout.CENTER);JPanelno4=newJPanel(); no4.setLayout(newBorderLayout());no4.add(newJLabel("密碼:"),BorderLayout.WEST);no4.add(password,BorderLayout.CENTER);up.add(no1);up.add(no2);up.add(no3);up.add(no4);up.add(connectButton);up.add(closeButton);closeButton.setEnabled(false);this.add(up,BorderLayout.NORTH); //上方 fileScrollPane=newJScrollPane(fileList,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);fileScrollPane.setPreferredSize(newDimension(300,400));this.add(fileScrollPane,BorderLayout.CENTER);//中部 }4.2.2功能實(shí)現(xiàn)函數(shù)使用SUN公司提供的FTP客戶端類庫(kù)。主要包括4個(gè)類:.TelnetInputS.TelnetOutputS.ftp.FtpC.ftp.FtpLoginException編寫FtpBean類實(shí)現(xiàn)業(yè)務(wù)邏輯,包含一個(gè)FtpClient類的對(duì)象ftpClient。包含的方法如下:(1)建立連接Stringconnect(Stringdir,Stringhostname,intport,Stringusername,Stringpasswd)使用ftpClient=newFtpClient(hostname,port);ftpClient.login(username,passwd);(2)獲取文件名列表List<String>getFileNameList()使用InputStreamReaderisr=null;BufferedReaderbr=null;isr=newInputStreamReader(this.ftpCList(this.getDir()));br=newBufferedReader(isr);獲取輸入流來得到目錄中的文件信息(3)判斷路徑booleanisDir(Stringline)使用line.startsWith("d")來判斷(4)設(shè)置路徑booleansetPath(Stringpath) 使用ftpClient.cd(path);實(shí)現(xiàn)(5)上傳文件booleanuploadFile(StringlocalFile,StringtargetFileName)使用ftpClient.cd(path);實(shí)現(xiàn)(5)上傳文件booleanuploadFile(StringlocalFile,StringtargetFileName)使用TelnetOutputStreamtos=null;RandomAccessFilesendFile=null;DataOutputStreamdos=null;try{Filefile=newFile(localFile);sendFile=newRandomAccessFile(file,"r");sendFile.seek(0);tos=this.ftpClient.put(targetFileName);dos=newDataOutputStream(tos);intch=0;while(sendFile.getFilePointer()<sendFile.length()){ch=sendFile.read();dos.write(ch);}獲取文件輸出流,讀取數(shù)據(jù)并寫入文件(6)下載文件booleandownloadFile(StringsrcFileName,StringtargetFileName)使用TelnetInputStreamtis=null;RandomAccessFilegetFile=null;booleanresult=true;try{Filefile=newFile(targetFileName);getFile=newRandomAccessFile(file,"rw");getFile.seek(0);tis=this.ftpClient.get(srcFileName);DataInputStreamdis=newDataInputStream(tis);intch=0;while(true){ch=dis.read();if(ch<0){break;}getFile.write(ch)}getFile.close();}獲取文件輸入流,讀取數(shù)據(jù)并寫入文件(7)進(jìn)入上一級(jí)文件目錄up()使用ftpClient.cdUp();實(shí)現(xiàn)(8)進(jìn)入下一級(jí)文件目錄downDir()使用上面的方法來實(shí)現(xiàn)下一級(jí)文件目錄的訪問(9)給文件重命名booleanrenameFile(StringoldName,StringnewName)使用ftpClient.rename(oldName,newName);來實(shí)現(xiàn)(10)刪除文件deleteFile(StringfileName)使用Stringcmd="DELE"+fileName+"\r\n";ftpClient.sendServer(cmd);來實(shí)現(xiàn)(11)獲取當(dāng)前路徑StringgetDir()使用returnthis.ftpClient.pwd();實(shí)現(xiàn)(12)關(guān)閉連接Stringclose()使用ftpClient.closeServer();實(shí)現(xiàn)
第五章系統(tǒng)實(shí)現(xiàn)——楊小蘭,許平,任杰5.1界面設(shè)計(jì)的實(shí)現(xiàn)5.1.1連接服務(wù)器單擊連接若服務(wù)器名稱、端口、用戶名和密碼對(duì)的前提下登錄到指定的服務(wù)器上面,彈出“登錄成功”對(duì)話框,并在下方狀態(tài)欄中顯示“登錄成功5.1.2獲取文件列表登錄到服務(wù)器上面之后,獲取在服務(wù)器用戶的主文件及文件夾并在下方狀態(tài)欄顯示5.1.3斷開服務(wù)器當(dāng)用戶需要關(guān)閉連接時(shí),單機(jī)“斷開連接”就可斷開與服務(wù)器的連接,在狀態(tài)欄上顯示“連接已斷開”,此時(shí)并不退出客戶端。5.1.4上傳文件右擊彈出快捷菜單單擊上傳顯示上傳對(duì)話框選擇需要上傳的文件單擊打開即可上傳,上傳成功顯示“上傳成功”對(duì)戶框,并在狀態(tài)欄顯示當(dāng)前狀態(tài)5.1.5下載單擊下載彈出下載主機(jī)路徑,指定目錄以及文件名稱,單擊打開 下載成功會(huì)彈出對(duì)話框“下載文件+源文件具體目錄+成功”5.1.6重命名 選中需要重命名的文件或者文件夾,右擊彈出快捷菜單,單擊重命名在彈出的對(duì)話中輸入新的名稱,然后單擊確定彈出重命名成功的消息框5.1.7刪除選中需要?jiǎng)h除的文件,右擊彈出快捷菜單,單擊刪除彈出刪除文件成功消息框此時(shí)的文件夾已經(jīng)把選中的從列表中移除5.1.8刷新當(dāng)進(jìn)行上傳,重命名、刪除或者服務(wù)器更新列表時(shí),文件列表沒有及時(shí)更新,可以點(diǎn)擊刷新按鈕進(jìn)行顯示5.1.9返回上一目錄在文件夾子目錄需要返回上一級(jí)目錄時(shí),單擊“上級(jí)目錄”即可以實(shí)現(xiàn)5.1.10查看日志信息日志信息是對(duì)用戶操作的記錄,如果需要查看,單擊查看日志信息即可打開記錄日志的文件
第六章測(cè)試、運(yùn)行與維護(hù)安全FTP服務(wù)器系統(tǒng)具有很強(qiáng)的交互性,在開發(fā)中會(huì)有很多問題是不能通過想象和經(jīng)驗(yàn)進(jìn)行預(yù)計(jì)和處理的,因此只能通過測(cè)試等軟件開發(fā)手段來發(fā)現(xiàn)問題并解決問題。6.1測(cè)試該系統(tǒng)的主要進(jìn)行了以下幾個(gè)方面的測(cè)試:?jiǎn)卧獪y(cè)試、功能測(cè)試、性能測(cè)試、安裝/部署測(cè)試等。6.2單元測(cè)試為了確保在開發(fā)中實(shí)現(xiàn)了所有的需求,同時(shí)也為了使項(xiàng)目代碼滿足各種編碼規(guī)范,在正式測(cè)試之前對(duì)代碼進(jìn)行了人工排查,對(duì)系統(tǒng)進(jìn)行了靜態(tài)單元測(cè)試——代碼審查。程序中有齊全的各種注釋:各種方法都有功能描述,方法中的功能模塊具有功能的相關(guān)描述;參數(shù)和返回值也有相關(guān)的文字描述;除局部變量外都進(jìn)行了變量的含義注釋。方法,變量等都使用了統(tǒng)一的命名規(guī)范。本系統(tǒng)的開發(fā)完全遵照C#的編碼規(guī)范,如代碼按行進(jìn)行書寫,一行只有一個(gè)語(yǔ)句等等,變量使用camelCase(駝峰)命名規(guī)范進(jìn)行命名。命名空間也使用了規(guī)范的命名規(guī)則和組織規(guī)則。如上這些規(guī)范都可以提高代碼的可讀性和系統(tǒng)的可維護(hù)性。通過代碼審查可以發(fā)現(xiàn)一些顯而易見的邏輯錯(cuò)誤和功能缺失,這些先期的處理可以為后面的測(cè)試節(jié)省時(shí)間和測(cè)試代價(jià)。6.3功能測(cè)試功能測(cè)試主要是對(duì)需求中的各功能要求進(jìn)行測(cè)試性運(yùn)行,保證系統(tǒng)的正確運(yùn)行。在測(cè)試中,首先進(jìn)行了用戶界面和適用性的測(cè)試。使產(chǎn)品更具人性化,人們?cè)谑褂脮r(shí)更加靈活、舒適,提高軟件使用者——客戶的體驗(yàn)。使用基于功能需求的回歸測(cè)試對(duì)項(xiàng)目進(jìn)行各個(gè)功能的驗(yàn)證。在測(cè)試中發(fā)現(xiàn)功能缺陷或其他的不足,返回到代碼中修改這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 零售業(yè)中的顧客安全保障措施
- DB3715T 69-2025研學(xué)旅游指導(dǎo)師服務(wù)規(guī)范
- 專業(yè)技術(shù)人才海外培訓(xùn)服務(wù)合同(版)
- 上海股權(quán)轉(zhuǎn)讓合同文本
- 二手房轉(zhuǎn)讓合同定金協(xié)議書范本
- 中外合資企業(yè)勞動(dòng)合同樣本
- 個(gè)人保證擔(dān)保融資合同協(xié)議
- NBA賽事中國(guó)區(qū)電視轉(zhuǎn)播合同
- 互利共贏投資合作合同
- 個(gè)人物流配送服務(wù)合同模板
- 注射用醋酸亮丙瑞林微球
- 部編版語(yǔ)文五年級(jí)下冊(cè) 全冊(cè)教材分析
- 胎兒性別鑒定報(bào)告模板
- 大學(xué)生就業(yè)指導(dǎo)PPT(第2版)全套完整教學(xué)課件
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報(bào)
- 耳穴療法治療失眠
- 少兒財(cái)商教育少兒篇
- GB 1886.114-2015食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑紫膠(又名蟲膠)
- envi二次開發(fā)素材包-idl培訓(xùn)
- 2022年上海市初中語(yǔ)文課程終結(jié)性評(píng)價(jià)指南
評(píng)論
0/150
提交評(píng)論