版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> FTP文件傳輸課程設計</p><p><b> 摘 要</b></p><p> 進入信息時代,隨著互聯(lián)網(wǎng)普及,只要接上網(wǎng)絡,就能從網(wǎng)上找到龐大的數(shù)據(jù)資源,其內(nèi)容包羅萬象,可以說幾乎任何人都可以在Internet資源中找到自己所需要的信息資源。有了網(wǎng)絡,使用者不但可以瀏覽各種各樣的信息資源,還能夠?qū)⒆约焊信d趣的資源下載到本地機上。計算機之間
2、數(shù)據(jù)的傳輸大多是通過文件傳輸協(xié)議FTP來完成的。FTP使用兩個TCP連接來實現(xiàn)文件傳送操作。FTP可以管理四類不同的文件類型,且可用多種模式傳輸文件。</p><p> 本系統(tǒng)是用JBuilder 9.0作為開發(fā)工具完成的,系統(tǒng)有著良好的界面,簡單易用,系統(tǒng)開發(fā)的總體任務是連接FTP服務器,上傳/下載文件;并使用Serv-U軟件構建FTP服務器,使客戶端用戶能夠通過互聯(lián)網(wǎng)訪問FTP服務器,進行信息資源的共享和傳
3、輸。</p><p> 論文首先介紹FTP文件傳輸協(xié)議的原理和工作的機制。然后簡要介紹開發(fā)FTP客戶端應用程序的一些詳細的步驟(如何建立文件傳輸?shù)臄?shù)據(jù)連接過程)并提供了一個完整的JAVA實現(xiàn)的文件傳輸程序模塊,以此來演示使用JAVA開發(fā)FTP客戶端應用程序的一些具體細節(jié)。本次論文的設計,即從需求分析,軟件設計到軟件功能實現(xiàn),都始終遵循軟件工程的思想和數(shù)據(jù)庫的設計方法。在本文中采用了大量的圖表說明,使文章明確清晰
4、,便與閱讀和理解。 </p><p> 關鍵詞: FTP文件傳輸系統(tǒng) ,JBuilder 9.0, 網(wǎng)絡技術,軟件工程</p><p><b> ABSTARCT</b></p><p> During entering to the information times, along with the In
5、ternet universal, so long as connect with the net, you can find out the huge data resources from the Internet. It is almost said that everyone can find out the information resources which you need in the Internet. Had th
6、e network, the user can not only browse various of information resources, but also download resources which you are interested in. Most of the data transfer between computers are realized through file transfer protocol-F
7、T</p><p> This software system completes with the JBuilder 9.0 tools. And the system has good interface, using in brief and easily. The total mission of the system is to link the server of FTP, spreading up
8、/ download documents.And a FTP server can be built by the software of Serv-U.The user of client side then can visit the FTP server to upload or download the files.</p><p> Firstly this design introduces the
9、 mechanics and principle of File Transportation Protocol (FTP). Then detailed steps (how to make a data link for file transport) of developing the FTP Client are presented. A programming module of file transport, written
10、 in java is available to demonstrate the specifics of developing a FTP Client Application in JAVA.The design of this software, namely analytical from the need, the software designs the function to carry out, all followin
11、g the thought of the softw</p><p> Key Words: FTP File transportation system, JBuilder 9.0, network technique, software engineering.</p><p><b> 目錄</b></p><p><b>
12、; 摘 要I</b></p><p> ABSTARCTII</p><p><b> 目錄III</b></p><p><b> 第一章 緒論1</b></p><p><b> 1.1課題簡介1</b></p><p&g
13、t; 1.2 FTP的工作原理1</p><p> 1.2.1 FTP連接1</p><p> 1.2.2 FTP數(shù)據(jù)處理2</p><p> 1.2.3 FTP命令以及響應2</p><p> 1.2.4 FTP登陸2</p><p> 1.3 相關技術和開發(fā)工具2</p>
14、<p> 1.3.1 JAVA簡介3</p><p> 1.3.2 Jbuilder 9.0編程環(huán)境3</p><p> 1.3.3C/S的網(wǎng)絡通信模式4</p><p> 1.3.4 FTP服務器端軟件Serv-U4</p><p> 第二章 系統(tǒng)需求分析6</p><p>
15、 2.1 任務概述6</p><p> 2.2 設計思想6</p><p> 2.3 系統(tǒng)工作流程與結(jié)構6</p><p> 2.4 用例描述7</p><p> 2.5 分析與設計10</p><p> 2.6 相關類的設計13</p><p> 第三章
16、系統(tǒng)界面設計及模塊實現(xiàn)16</p><p> 3.1 功能說明16</p><p> 3.2 程序設計流程圖16</p><p> 3.3 各界面的設計16</p><p> 3. 3. 1 主界面設計16</p><p> 3. 3. 2 連接FTP服務器界面設計17</p>
17、;<p> 3. 3. 3 文件處理界面設計18</p><p> 3.4 模塊功能介紹及核心代碼20</p><p> 3. 4. 1 登錄模塊20</p><p> 3. 4. 2 瀏覽模塊20</p><p> 3. 4. 3 文件上傳模塊21</p><p> 3.
18、 4. 4 文件下載模塊21</p><p> 3. 4. 5 斷開與服務器的連接22</p><p> 第四章 軟件測試23</p><p> 4.1 確定測試策略23</p><p> 4.2 劃分輸入等價類23</p><p> 4.3 建立測試用例23</p>&l
19、t;p><b> 結(jié) 論25</b></p><p><b> 參考文獻26</b></p><p><b> 致 謝27</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1課題簡介
20、</b></p><p> 隨著Internet技術的興起與發(fā)展和網(wǎng)絡技術的蓬勃發(fā)展,人們希望通過互聯(lián)網(wǎng)來共享網(wǎng)絡上的資源,便于為自己結(jié)省成本,這就迫切需要實現(xiàn)網(wǎng)絡與數(shù)據(jù)庫的互連。網(wǎng)絡技術發(fā)展到今天,人們已經(jīng)可以把數(shù)據(jù)庫技術引入到Web 系統(tǒng)中。隨著軟件工程學的迅速發(fā)展,軟件測試的理論也不斷完善,軟件測試的實施在整個軟件生命周期中的地位也越來越重要,其工作量占軟件開發(fā)總工作量的40%以上。軟件測試已
21、成為軟件生產(chǎn)中必不可少的質(zhì)量保證手段。</p><p> FTP是Internet上使用最廣泛的應用之一。FTP服務是以它所使用的文件傳輸協(xié)議(File Transfer Protocol)命名的。 目前Internet上幾乎所有的計算機系統(tǒng)上,都帶有FTP工具,用戶通過它可以將文檔從一臺計算機上傳到另外一臺計算機上。</p><p> 普通的FTP服務要求用戶必須在要訪問的計算機上有
22、用戶名和口令。而Internet上最受歡迎的是稱為匿名(anonymous)FTP的服務,用戶在登錄這些服務器時不用事先注冊一個用戶名和口令,而是以"anonymous"或"ftp"為用戶名,自己的電子郵件地址為口令即可。</p><p> 匿名FTP是目前Internet上進行資源共享的主要途徑之一。它的特點是訪問方便,800616操作簡單,容易管理。Internet上
23、有許多的資源都是以FTP的形勢提供給大家使用的,包括各種文檔、軟件工具包等等。</p><p> 所以我選了些課題,想通過現(xiàn)在最熱門的Java語言來實現(xiàn)FTP功能。</p><p> 1.2 FTP的工作原理</p><p> FTP(File Transfer Protocol,文件傳輸系統(tǒng))是Internet上使用非常廣泛的一種通信協(xié)議(屬于TCP/IP)
24、,它是由支持Internet文件傳輸?shù)母鞣N規(guī)則組成,這些規(guī)則使Internet用戶可以把文件從一個主機拷貝到另一個主機上。FTP支持多種文件類型和文件格式,包括ASCII文件和二進制文件。</p><p> 下面將從FTP連接,F(xiàn)TP數(shù)據(jù)處理,F(xiàn)TP命令及響應三個方面來介紹FTP工作原理</p><p> 1.2.1 FTP連接</p><p> FTP使用兩
25、條TCP連接來完成文件傳輸:控制連接和數(shù)據(jù)連接??刂七B接用于傳輸控制,數(shù)據(jù)連接用于數(shù)據(jù)傳輸。在服務器啟動后,服務器就會在端口21等待客戶的連接請求,有用戶需要傳輸文件時候,客戶與服務器的端口21建立一個控制連接,用來傳送客戶的命令和服務器的應答,該連接一直保持到客戶與服務器通信結(jié)束為止。當客戶發(fā)出數(shù)據(jù)傳輸 命令時候,服務器會主動與客戶建立數(shù)據(jù)連接,并與進行數(shù)據(jù)交換??蛻舳擞脩舨⒉皇侵苯犹幚砜刂七B接上的FTP命令和FTP響應,而是由兩個協(xié)
26、議解釋器進行處理。用戶接口為客戶端用戶提供一定形式的輸入界面,接收用戶的命令,將其轉(zhuǎn)換成標準的FTP命令,最終將控制連接上的FTP響應轉(zhuǎn)換成用戶可以理解的方式。</p><p> 1.2.2 FTP數(shù)據(jù)處理</p><p> FTP協(xié)議規(guī)范中提供了多種用于文件控制的傳輸和存儲方式,主要包括:</p><p><b> 1)文件類型處理:</b&
27、gt;</p><p> ASCII文件類型,EBCDIC文件類型,圖象文件類型,本地文件類型 </p><p><b> 2)格式控制:</b></p><p> 格式控制只能應用于ASCII文件和EBCDIC文件類型,有非打印格式控制,TELNET格式控制以及FORTRAN格式控制三種,其中默認為非打印格式控制,該格式控制下,文件不包
28、括任何格式信息。</p><p><b> 3)結(jié)構:</b></p><p> 結(jié)構分文件結(jié)構,記錄結(jié)構和頁結(jié)構三種。默認為文件結(jié)構,即將文件看成是一個連續(xù)的字節(jié)流,沒有內(nèi)部結(jié)構。記錄結(jié)構可勇于文本文件。頁結(jié)構中,每一個頁都有一個頁號,允許接收者以及任意的順序存儲頁。</p><p><b> 4)傳輸模式:</b>
29、;</p><p> 傳輸模式用于說明文件是如何在數(shù)據(jù)連接上進行傳輸?shù)?。主要有以下三類?lt;/p><p> 流模式:將文件當作一個字節(jié)流來傳輸。</p><p> 塊模式:將文件當作一系列的數(shù)據(jù)塊來傳輸。</p><p> 1.2.3 FTP命令以及響應 </p><p> 在控制連接上,F(xiàn)TP命令以及響應都
30、是以NVT ASCII格式進行傳輸?shù)?,并且每一行用CR和LF作為結(jié)束。一般來說,F(xiàn)TP命令是由3到4個字節(jié)大寫ASCII字符組成的,其中有一些命令有參數(shù)。一般的FTP響應是以3個ASCII數(shù)字作為前導,其后跟相應的消息,其中2~3位數(shù)字相應消息由客戶程序進行分析處理,后面的消息是提供給客戶閱讀的。</p><p> 1.2.4 FTP登陸</p><p> 實際上存在兩種FTP登錄方式
31、:一種是匿名的,之所以稱之為匿名的是因為任何人都可以訪問它。該站點允許那些使用Anonymous用戶名以及E-MAIL地址作為密碼的用戶訪問它.在匿名登錄的方式下,一些訪問類型受到了限制,如大多數(shù)站點允許下載,但是不允許匿名用戶上傳資料;另一種是非匿名的,這是需要一個合法的用戶名和密碼.用戶和密碼通常是系統(tǒng)管理員或者ISP尤其是所有者提供的.如果沒有用戶名和密碼,將會被拒絕訪問。</p><p> 1.3 相關
32、技術和開發(fā)工具</p><p> 本章節(jié)將介紹開發(fā)FTP文件傳輸系統(tǒng)的相關的技術和開發(fā)工具。涉及到的內(nèi)容包括:JAVA語言,開發(fā)工具JBUILDER 9的,C/S網(wǎng)絡通信模式以及服務器端的軟件Serv-U的相關知識和技術。</p><p> 1.3.1 JAVA簡介</p><p> Java來自Sun公司的一個叫Green的項目,其原先的目的是為家用消費電
33、子產(chǎn)品開發(fā)一個分布式代碼系統(tǒng),這樣我們可以把E-mail發(fā)給電冰箱等家用電器,對它們進行控制,和它們進行信息交流。開始,準備采用C++,但是C++太復雜,安全性差,最后基于C++開發(fā)一種新的語言Oak(Java的前身),Oak是一種用于網(wǎng)絡的精巧而且安全的語言,Sun公司曾依此投標一個交互式的電視項目,但是結(jié)果是被SGI打敗。可憐的Oak幾乎無家可歸,恰巧這時Mark Ardreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項
34、目組的成員,他們用Java編制了HotJava瀏覽器,得到了Sun公司首席執(zhí)行官Scott McNealy的支持,觸發(fā)了Java進軍Internet。Java的取名葉有一個趣聞,有一天,幾位Java成員組的會員正在討論給這個新的語言取什么名字,當時他們正在咖啡館喝著Java咖啡,有一個人靈機移動說叫Java怎樣,得到了其他人的贊賞,于是Java這個名字就這樣傳開了。</p><p> 作為一種編程語言,JAVA
35、擁有一些很獨特的特性:</p><p> 安全的(Secure):Java是被設計用于網(wǎng)絡及分布式的環(huán)境中,安全性自必是一個很 重要的考慮。Java擁有數(shù)個階層的互鎖(Interlocking)保護措施,能有效地防止病 毒的侵入和破壞行為的發(fā)生。 結(jié)構中立的(Architecture Neutral):一般而言,網(wǎng)絡是由很多不同機型的機器所 組合而成
36、的,CPU和作業(yè)系統(tǒng)體系結(jié)構均有所不同;因此,如何使一個應用程序可以 在每一種機器上執(zhí)行,是一個難題。所幸,Java的編譯器產(chǎn)生一種結(jié)構中立的目標 文件格式(Object File Format);這使得編譯碼得以在很多種處理器中執(zhí)行。 可移植的(Portable):原始資料型式的大小是被指定的,例如"float"一直是表示一 個32位元IEEE
37、 754浮點運算數(shù)字,因絕大多數(shù)的CPU都具有此共同特征。程序庫屬于 系統(tǒng)的一部份,它定義了一些可移植的程序接口,Java本身具備有很好的可移植性。 解釋的(Interpreted):Java解釋器能直接地在任何機器上執(zhí)行Java位元碼(Bytecodes), 因此在進行程序連結(jié)時,時間的節(jié)省,這對于縮短</p><p> 動態(tài)的(Dynamic):Java比
38、C或C++語言更具有動態(tài)性,更能適應時刻在變的環(huán)境, Java不會因程序庫的更新,而必須重新編譯程序。</p><p> 1.3.2 Jbuilder 9.0編程環(huán)境</p><p> Jbuilder是Borland公司的重點產(chǎn)品。隨著JAVA語言的流行,越來越多的開發(fā)者青睞這個可視化的JAVA應用開發(fā)工具。使用Jbuilder來進行JAVA開發(fā),可極大的加快生手的學習速度
39、,縮短熟手的開發(fā)時間,因此在短短幾年內(nèi)成為廣大程序員最喜愛的開發(fā)工具之一。Jbuilder 9.0則集成了軟件開發(fā)、測試、部署、管理等工具,極大的提高項目的開發(fā)速度。</p><p> 作為一款經(jīng)典的開發(fā)工具,它之所以能吸引越來越多的開發(fā)人員,是由于它的幾個非常重要同時也很獨到的特性。</p><p> (1) 結(jié)構易于創(chuàng)建</p><p> 結(jié)構易于創(chuàng)建J
40、Builder提供創(chuàng)建平臺獨立的GUI工具的方式與眾不同。從表面上看,JBuilder就與Visual Cafe或Visual Age for Java一樣,它默認使用一種叫做XYLayout的布局結(jié)構。這個特性允許程序員以所見即所得的方式將組件放到結(jié)構中。 (2) 結(jié)構的可維護性</p><p> 在JBuilder中設置網(wǎng)格限制相當容易,對任何給定的組件用戶都可以彈出一個網(wǎng)格限制對話框,在對話框中可
41、以設置一些網(wǎng)格限制參數(shù),如垂直或水平擠壓和填充等。除此之外,用戶也可以直接到網(wǎng)格限制屬性對話框中進行設置。盡管JBuilder不能象Java Workshop那樣在網(wǎng)格布局結(jié)構中直接移動組件或調(diào)整其大小那樣容易和直觀,但還是可以完成的。 </p><p> (3) 可視化編程</p><p> JBuilder提供了一個交互向?qū)В↖nteractive Wizard)作為可視化編程工
42、具。其目的是能夠自動完成組件之間的一些簡單的交互操作。然而它的不足之處是交互向?qū)нh不夠直觀而且缺乏一個高級的程序員所要求的靈活性。比如當用戶使用它來產(chǎn)生一組代碼以便當按下某個開關時可以將文本從一個編輯控制放到一個選擇列表中。</p><p> C/S的網(wǎng)絡通信模式</p><p> C/S (Client/Server)結(jié)構,即大家熟知的客戶機和服務器結(jié)構。它是軟件系統(tǒng)體系結(jié)構,通過它
43、可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的Web應用發(fā)展,Web和Client/Server 應用都可以進行同樣的業(yè)務處理,應用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應
44、用系統(tǒng)的發(fā)展方向。</p><p> 傳統(tǒng)的C/S體系結(jié)構雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環(huán)境,C/S結(jié)構的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件, 加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應百臺電腦以上局域網(wǎng)用戶同時使用。</p><p> 1.3.4
45、 FTP服務器端軟件Serv-U</p><p> FTP個人服務器提供了給同一網(wǎng)絡中的其他機器互相訪問的功能,如:上傳文件,下載文件等實現(xiàn)資源的共享。</p><p> Serv-U是Rob Beckers開發(fā)的一個功能強大的、簡單易用的、成熟的FTP服務器,F(xiàn)TP服務器用戶通過Internet的FTP協(xié)議共享文件。Serv-U不僅僅能100%適用于標準的FTP,同樣也包括了很多功能
46、,是一個完美的文件共享解決方案。</p><p> FTP Serv-U最新的版本是6.2,新的版本支持SSl FTP傳輸,支持在多個Serv-U和FTP客戶端通過SSL加密連接保護您的數(shù)據(jù)安全。是一個適合各種大小空間管理的服務器,它不僅僅擁有的很多高級的管理工具,他還是一個簡單應用和安全的標準。Serv-U是眾多FTP服務器中比較通俗一個、同時擁有眾多高級和管理工具。</p><p>
47、 FTP Serv-U其他的安全功能:用SSL加密數(shù)據(jù)、ODBC的支持、帶寬限制、目錄和文件的權限管理、IP限制、定制安全設置。</p><p> 第二章 系統(tǒng)需求分析</p><p><b> 2.1 任務概述</b></p><p> 整個整個文件傳輸系統(tǒng)是由服務器端服務程序和客戶端應用共同組成。FTP服務器端的程序由服務器端的
48、軟件Serv—U來控制,負責接受和處理客戶端的請求。客戶端由5個模塊組成:連接模塊,下載模塊,上傳模塊,目錄瀏覽模塊,以及界面組成,所有的模塊功能通過界面同用戶交流。</p><p><b> 2.2 設計思想</b></p><p> 利用JAVA的網(wǎng)絡類庫中專門針對FTP文件傳輸?shù)南嚓P類以及方法,實現(xiàn)與現(xiàn)有的FTP服務器的連接與通信。利用C/S網(wǎng)絡應用模型的相
49、關特點與知識,配合開發(fā)工具的自身的特點實現(xiàn)FTP文件傳輸系統(tǒng)。 </p><p> 2.3 系統(tǒng)工作流程與結(jié)構</p><p> FTP的客戶端程序的設計主要有四個部分:客戶登陸程序設計,FTP服務器目錄瀏覽程序,FTP服務器目錄更新程序設計,上傳和下載文件程序設計.而相應的操作流程為:</p><p> 首先客戶端程序先連接服務器;然后瀏覽或更
50、新FTP服務器目錄;選擇文件進行下載和上傳;進行文件數(shù)據(jù)傳輸;最后斷開連接.</p><p> 由于JBULIEDER提供的FTP控件已經(jīng)對其進行了類的封裝, 因而對用戶來說它是透明的,不必在去編程解釋響應消息了.這樣使用JBULIDER9,就節(jié)約了大量的開發(fā)時間.</p><p> 下圖是文件傳輸系統(tǒng)的系統(tǒng)結(jié)構:</p><p> 圖2-1文件傳輸系統(tǒng)的結(jié)構
51、</p><p><b> 2.4 用例描述</b></p><p><b> 客戶端實現(xiàn)的功能:</b></p><p> 能連接到一個遠端的FTP服務器</p><p> 從遠端服務器下載文件</p><p> 能向遠端服務器上傳文件</p>&
52、lt;p> 能斷開和當前遠端服務器的連接</p><p> 從功能上得到四個用例:</p><p> 建立連接 下載文件 上傳文件 斷開連接</p><p><b> 用例圖如下所示:</b></p><p> 圖2-2 客戶端用例圖</p><p> 每個用例
53、描述文件如下:</p><p><b> (1)建立連接</b></p><p> “建立連接”用例描述了用戶建立連接的整個過程。具體描述下:</p><p><b> 用例名稱:建立連接</b></p><p> 用例說明:通過網(wǎng)絡連接到一個FTP服務器</p><p&
54、gt; 通信協(xié)議:使用FTP協(xié)議</p><p><b> 基本過程:</b></p><p> 1)輸入FTP服務器的信息</p><p> 2)用戶發(fā)出建立或連接FTP服務器的請求</p><p> 3)連接到指定的FTP服務器</p><p><b> ?。?)下載文件&
55、lt;/b></p><p> “下載文件”用例描述了用戶從服務器下載文件到本地文件夾的過程。具體描述如下:</p><p><b> 用戶名稱:下載文件</b></p><p> 用戶說明:用戶獲取遠端服務器提供的服務,下載遠程服務器上的文件到本地</p><p> 通信協(xié)議:使用FTP協(xié)議</p&
56、gt;<p><b> 基本過程:</b></p><p> 1)用戶確定需要下載的遠端文件的信息</p><p> 2)用戶確定保存文件的本地路徑</p><p> 3)向服務器發(fā)送下載文件的請求</p><p> 4)從遠端服務器獲取文件</p><p> 5)保存文
57、件到本地磁盤</p><p> 基本過程中使用了FTP協(xié)議提交下載文件的請求,并且獲取遠端文件。</p><p><b> ?。?)上傳文件</b></p><p> “上傳文件”用例描述了用戶從本地上傳文件到服務器的過程。具體描述如下:</p><p><b> 用例名稱:上傳文件</b>&
58、lt;/p><p> 用例說明:用戶獲取遠端服務器提供的服務,上傳本地的文件到遠程服務器</p><p> 通信協(xié)議:使用FTP協(xié)議</p><p><b> 基本過程:</b></p><p> 1)用戶確定需要上傳的本地文件的信息</p><p> 2)用戶確定保存文件的遠程路徑<
59、/p><p> 3)向服務器發(fā)送上傳文件的請求</p><p> 4)向遠端服務器傳輸文件</p><p> 基本過程中使用FTP協(xié)議上傳文件的請求,并傳輸本地文件到遠端服務器的指定位置。</p><p><b> ?。?)斷開連接</b></p><p> “斷開連接”用例描述了用戶斷開和當
60、前服務器連接的整個過程。具體的描述如下:</p><p><b> 用例名稱:斷開連接</b></p><p> 用例說明:離開當前已經(jīng)連接的FTP服務器</p><p> 通信協(xié)議:使用FTP協(xié)議</p><p><b> 基本過程:</b></p><p> ?。?/p>
61、1)用戶發(fā)送斷開連接的請求</p><p> (2)將用戶請求發(fā)送到FTP服務器</p><p> ?。?)停止從FTP服務器獲取服務</p><p> (4)斷開和FTP服務器的連接</p><p> 預期結(jié)果是停止從當前服務器上的服務,并且斷開和當前FTP服務器的連接。</p><p><b>
62、客戶端的活動圖</b></p><p> 4個用例的文字描述已經(jīng)給出,這里使用活動圖來對復雜用例進一步的說明。這里給出實現(xiàn)主要功能的“下載文件”和“上傳文件”兩個用例的活動圖。</p><p> “下載文件”用例的活動圖如圖所示:</p><p> 圖2-3“下載文件”用例的活動圖</p><p> 從活動圖中,我們更直接
63、的了解了該子用例的整個工作的流程如下:</p><p> ?。?)系統(tǒng)定位下載的文件和保存的路徑。</p><p> (2)發(fā)送下載文件的請求。</p><p> (3)如果請求失敗,則提示出錯的信息,然后結(jié)束。</p><p> ?。?)如果請求成功,獲取遠程文件的內(nèi)容。</p><p> (5)如果獲取失敗,
64、則提示出錯信息,然后結(jié)束。</p><p> ?。?)如果獲取成功,保存文件到本地,然后結(jié)束。</p><p> “上傳文件”用例的活動圖如下圖所示:</p><p> 圖2-4“下載文件”用例的活動圖</p><p> 從活動圖中,我們更能直觀的了解該子用例的整個工作流程如下:</p><p> (1)系統(tǒng)定
65、位上傳文件和保存路徑。</p><p> ?。?)發(fā)送上傳文件請求。</p><p> ?。?)如果請求失敗,則提示出錯信息,然后結(jié)束。</p><p> ?。?)如果請求成功,傳輸本地的文件到服務器。</p><p> (5)如果文件傳輸失敗,則提示出錯信息,然后結(jié)束。</p><p> ?。?)如果傳輸文件成功,
66、提示傳輸成功,然后結(jié)束。</p><p> 至此,客戶端的用例已經(jīng)描述完善。</p><p> 2.5 分析與設計</p><p><b> 獲取客戶端對象</b></p><p> 從用例以及描述中,分析每個活動以及其實現(xiàn)的功能,可以得到實現(xiàn)客戶端的對象:連接界面,服務界面,響應處理,建立連接,上傳文件,斷開
67、連接和下載文件.它們之間的關系用對象圖表示如下:</p><p> 圖2-5 客戶端對象圖</p><p> 客戶端對象的靜態(tài)關系(每個用例將建立一個協(xié)作圖,來詳細描述對象之間的關系)</p><p><b> 1建立連接</b></p><p><b> 協(xié)作圖如下:</b></p&
68、gt;<p> 圖2-6 “建立連接”協(xié)作圖 </p><p> 該協(xié)作圖描述的對象關系如下:</p><p> 用戶向“連接界面”發(fā)送“連接請求”,“連接界面”向“響應處理”發(fā)送“連接請求”,“響應處理”向“建立連接”發(fā)送“連接請求”, “建立連接”向“連接界面”發(fā)送 “連接建立”, “連接建立”向用戶反饋”連接建立”</p><p><
69、;b> 2.下載文件</b></p><p> “下載文件”用例將遠端服務器的文件傳輸?shù)奖镜?lt;/p><p> 圖2-7 “下載文件”協(xié)作圖 </p><p> 3.上傳文件(同下載)</p><p> “上傳文件”用例將文件傳輸?shù)竭h端服務器</p><p> 4.斷開連接(同連接)<
70、;/p><p> “斷開連接”用例的對象關系和用例”建立連接”相似</p><p> 客戶端對象的動態(tài)關系(建立序列圖)</p><p><b> 1.建立連接</b></p><p> 圖2-8“建立連接”序列圖</p><p><b> 2.下載文件</b><
71、/p><p> 圖2-9“下載文件”序列圖</p><p> 3.上傳文件(同下載)</p><p> 4.斷開連接(同連接)</p><p> 2.6 相關類的設計</p><p><b> 1.用戶界面的類圖</b></p><p> 圖2-10 簡要類圖 &l
72、t;/p><p> 這個圖描述了界面本身的結(jié)構,是一個很簡單的設計模型,而并未牽涉到界面在整體中的作用,以及UI對象之間的交互的方式。</p><p> 綜合考慮功能和復雜性,通過模型重組,最終要實現(xiàn)的類只有一個。該類實現(xiàn)了FTP客戶端的所有功能.其類如圖所示</p><p> 圖2-11詳細類圖 </p><p> 類圖僅僅表示靜態(tài)結(jié)構
73、,下面給出狀態(tài)圖進一步描述其行為.</p><p> 圖2-12 狀態(tài)圖 </p><p> 狀態(tài)圖中,根據(jù)3個用例將類的行為分為3個狀態(tài):</p><p> 1)尚未聯(lián)機:該狀態(tài)下顯示斷開連接時候的用戶界面,響應連接按鈕的事件來建立連接,轉(zhuǎn)到聯(lián)機狀態(tài),或者響應關閉窗口的事件,退出程序</p><p> 2)已經(jīng)聯(lián)機:該狀態(tài)下顯示連接
74、到服務器的信息,并且顯示用戶可以訪問的文件列表,等待新的命令.如果命令是下載則轉(zhuǎn)到下載文件狀態(tài)下載文件,若是斷開連接則斷開和服務器的連接轉(zhuǎn)到尚未聯(lián)機的狀態(tài),若是關閉窗體,則退出程序.</p><p> 3)下載文件:實現(xiàn)下載功能</p><p> 第三章 系統(tǒng)界面設計及模塊實現(xiàn)</p><p><b> 3.1 功能說明</b><
75、/p><p> FTP的客戶端程序的設計主要有四個部分:客戶登陸程序設計,FTP服務器目錄瀏覽程序,FTP服務器目錄更新程序設計,上傳和下載文件程序設計.而相應的操作流程為:</p><p> 首先客戶端程序先連接服務器;然后瀏覽或更新FTP服務器目錄;選擇文件進行下載和上傳;進行文件數(shù)據(jù)傳輸;最后斷開連接.</p><p> 整個系統(tǒng)由圖形界面,登陸程序,瀏覽程
76、序,上傳,下載程序四大模塊組成.圖形用戶界面又由登陸界面和文件處理界面組成.它主要給用戶提供交互手段.登陸程序通過用戶提供的登陸信息連接到服務器,并把信息反饋于登陸界面.瀏覽程序?qū)崿F(xiàn)服務器與客戶端文件目錄的瀏覽.上傳與下載程序主要完成文件的傳輸,是系統(tǒng)的核心模塊.</p><p> 由于JBULIEDER提供的FTP控件已經(jīng)對其進行了類的封裝, 因而對用戶來說它是透明的,不必在去編程解釋響應消息了.這樣使用JB
77、ULIDER9,就節(jié)約了大量的開發(fā)時間.</p><p> 3.2 程序設計流程圖</p><p> 圖3-1 程序設計流程圖</p><p> 3.3 各界面的設計</p><p> 3. 3. 1 主界面設計</p><p> 用戶使用JBuilder9中的Project Wizard來創(chuàng)建工程。工
78、程的擴展名為:jpx。工程文件包含了工程其他文件所在目錄信息。使用Project Wizard的具體步驟如下:</p><p> 選擇FILE——New Project菜單項。</p><p> 在Name文本框中輸入FTPClient。</p><p> 單擊Finish按鈕</p><p> 表5-1 給出了要添加和設置的控件和需
79、要修改的設置值:</p><p> 表3-1 主界面的設計</p><p> 圖3-2為主界面最終效果圖</p><p><b> 圖3-2 主界面</b></p><p> 3. 3. 2 連接FTP服務器界面設計</p><p> 連接FTP服務器的設計是在jPanel1的基礎上
80、是設計實現(xiàn)的,增加了一些其他的控件,如表3-2所示:</p><p> 表3-2 連接FTP服務器界面的設計</p><p> 圖3-3為主界面最終效果:</p><p> 圖3-3 連接FTP服務器界面</p><p> 3. 3. 3 文件處理界面設計</p><p> 連接FTP服務器的設計是在j
81、Panel1的基礎上是設計實現(xiàn)的,增加了一些其他的控件,如表3-3所示:</p><p> 表3-3 文件處理界面的設計</p><p> 圖3-4為文件處理界面最終效果:</p><p> 圖3-4 文件處理界面</p><p> 3.4 模塊功能介紹及核心代碼</p><p> 3. 4. 1 登錄
82、模塊</p><p><b> 功能介紹:</b></p><p> (1)實例化一個FtpClient對象,如果輸入的形式不對,提示相應的消息</p><p> (2)登陸FTP服務器。如果不能登陸,提示相應的信息</p><p> (3)刷新服務器列表框,顯示服務器端的文件信息</p><
83、p><b> 核心代碼:</b></p><p><b> try{</b></p><p> ftp= new FtpClient(hostname,21);</p><p> ftp.login(jTextField2.getText(),jTextField3.getText());</p>
84、<p> ftp.binary();</p><p><b> }</b></p><p> catch (IOException ex){</p><p> JOptionPane.showMessageDialog(this, "連接主機:"+hostname+"失敗!");&l
85、t;/p><p><b> }</b></p><p> 3. 4. 2 瀏覽模塊</p><p><b> 功能介紹:</b></p><p> (1) 列出服務器端的目錄 文件詳細內(nèi)容</p><p> (2) 向列表框添加分解得到的目錄 文件</p>
86、<p> (3) 向列表框添加目錄文件</p><p><b> 核心代碼:</b></p><p><b> try {</b></p><p> TelnetInputStream t = ftp.list();</p><p> t.setStickyCRLF(true
87、);</p><p> while ( (ch = t.read()) >= 0) {</p><p> if (ch == '\n') {</p><p> list1.add(buf.toString().trim());</p><p> buf.setLength(0);</p><p
88、><b> }</b></p><p><b> else {</b></p><p> buf.append( (char) ch);</p><p><b> }</b></p><p><b> }}</b></p>&
89、lt;p> catch (IOException ex) {</p><p><b> }</b></p><p><b> }</b></p><p> 3. 4. 3 文件上傳模塊</p><p> 功能介紹: 看有沒有相應上傳,若沒有選,剛顯示相應消息.若選了,判斷:是目錄,
90、不進行認識操作;若是文件,則上傳。</p><p><b> 核心代碼:</b></p><p><b> try {</b></p><p> RandomAccessFile sendFile = new RandomAccessFile( conPath() , "r");</p>
91、;<p> sendFile.seek(0);</p><p> TelnetOutputStream outs = ftp.put(filename);</p><p> DataOutputStream outputs = new DataOutputStream(outs);</p><p> while (sendFile.getFil
92、ePointer() < sendFile.length()) {</p><p> ch = sendFile.read();</p><p> outputs.write(ch);</p><p><b> }</b></p><p> outs.close();</p><p>
93、; sendFile.close();</p><p><b> }</b></p><p> catch (IOException ex) {</p><p><b> }</b></p><p> 功能簡介: 看有沒有相應上傳,若沒有選,剛顯示相應消息.若選了,判斷:是目錄,不進行認識
94、操作;若是文件,則上傳。</p><p> 3. 4. 4 文件下載模塊</p><p> 功能介紹:觀察可選了本地目錄用于下載:若沒選了則在信息顯示框中顯示相應的消息;若選了,判斷是不是文件:(I)如果是文件,則在信息顯示框中提示相應的消息;(II)如果是目錄,則進行下載.下載文件到本地目錄。</p><p><b> 核心代碼:</b&g
95、t;</p><p><b> try{</b></p><p> File localFile = new File(conPath()+"\\"+filename) ;</p><p> RandomAccessFile getFile= new RandomAccessFile(localFile+"
96、\\+filename); </p><p> TelnetInputStream ins = ftp.get(filename);</p><p> DataInputStream Inputs = new DataInputStream(ins);</p><p> while ((ch = Inputs.read()) >
97、= 0) {</p><p> getFile.write(ch);</p><p><b> }</b></p><p> ins.close();</p><p> getFile.close();</p><p><b> }</b></p>&
98、lt;p> catch (IOException ex) {</p><p><b> }</b></p><p><b> }</b></p><p> 3. 4. 5 斷開與服務器的連接</p><p> 功能介紹:斷開與FTP服務器的連接</p><p>
99、;<b> try {</b></p><p> if (ftp!=null) {</p><p> ftp.closeServer();</p><p> list1.removeAll();</p><p><b> }</b></p><p><b>
100、; }</b></p><p> catch (IOException ex) {</p><p><b> }</b></p><p><b> }</b></p><p><b> 第四章 軟件測試</b></p><p>
101、4.1 確定測試策略</p><p> 在本次設計中,對被測試程序的功能有明確的要求:即:</p><p><b> 能否連接服務器</b></p><p> 成功上傳文件到服務器</p><p> 成功從服務器下載文件</p><p> 能成功斷開與服務器的連接</p>
102、<p> 4.2 劃分輸入等價類</p><p> 表 4—1 建立連接等價類</p><p> 表 4—2 上傳文件等價類</p><p> 表4—3 下載文件等價類</p><p> 表4—4 斷開連接等價類</p><p> 4.3 建立測試用例</p><p&
103、gt; 表 4—5 建立連接測試用例</p><p> 表 4—6 上傳文件測試用例</p><p> 表 4—7 下載文件測試用例</p><p> 表 4—8 斷開連接測試用例</p><p><b> 結(jié) 論</b></p><p> FTP客戶端設計的原理,F(xiàn)TP使用兩
104、條TCP連接來完成文件傳輸:控制連接與數(shù)據(jù)連接。控制連接用于傳輸控制,數(shù)據(jù)連接用于數(shù)據(jù)輸送。在服務器啟動后,服務器就會在端口21等待客戶的連接請求,有用戶需要傳輸文件時,客戶與服務器的端口21建立一個控制連接,用來傳送客戶的命令和服務器的應答,該連接一直保持到客戶與服務器通信結(jié)束為止。當客戶發(fā)出數(shù)據(jù)傳輸命令時,服務器會主動與客戶建立數(shù)據(jù)連接,并與其進行數(shù)據(jù)交換。</p><p> 客戶端用戶并不直接處理控制連接
105、上的FTP命令和FTP響應,而是由兩個協(xié)議解釋器進行處理。用戶接口為客戶端用戶提供一定形式的輸入界面,接收用戶的命令,將其轉(zhuǎn)換成標準的FTP命令,最終將控制連接上的FTP響應轉(zhuǎn)換成用戶可理解的方式。在客戶與服務器的整個連接期間,控制連接必須保持,而數(shù)據(jù)連接卻可以根據(jù)請求動態(tài)地建立和關閉。在最常用的流模式中,文件結(jié)束是用數(shù)據(jù)連接的關閉來表示的,換句話說,每傳輸一個文件或文件列表,系統(tǒng)就會再建立一個新的數(shù)據(jù)連接。 </p&g
106、t;<p> 到這里,我的畢業(yè)論文已經(jīng)做完了,當然還有一些問題有待解決。比如實現(xiàn)智能化的定時開關功能,F(xiàn)TP傳輸?shù)陌踩珕栴}以及客戶端的注冊功能等。在未來的日子里,本人會繼續(xù)努力,在力所能及的范圍內(nèi),盡量完善系統(tǒng)的功能。</p><p><b> 參考文獻</b></p><p> [1] 應群編著. 面向?qū)ο蟮腏AVA網(wǎng)絡編程. 清華大學出版社,
107、 2004</p><p> [2] 張青, 郭立山編著. Java程序設計教程. 冶金工業(yè)出版社, 2002</p><p> [3] 徐雅靜編著. Jbuilder入門與提高. 人民郵電出版社, 2003</p><p> [4] 胡月, 葉曙光編著. Jbuilder9入門與提高. 科學出版社, 2004</p><p&
108、gt; [5] 李爭, 陸正中編著. JBuilder精髓. 電子工業(yè)出版社, 2004</p><p> [6] 張孝祥編著. Java就業(yè)教程. 清華大學出版社, 2004</p><p> [7] 龔正虎編著. 計算機網(wǎng)絡協(xié)議工程. 國防科技大學出版社, 1993</p><p> [8] 許治坤等編著. 網(wǎng)絡滲透技術. 電子工業(yè)出版社,
109、 2005</p><p> [9] 饒一梅, 張鈞編著. Java程序設計. 清華大學出版社, 2004</p><p> [10] Cay S. Horstmann, Gary Cornell. JAVA 2 核心技術. 機械工業(yè)出版社, 2004</p><p> [11] Bruce Eckel. Thinking in Java(Sec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ftp文件傳輸課程設計
- 計算機網(wǎng)絡課程設計_ftp文件傳輸
- 基于android的ftp文件傳輸
- 基于android的ftp文件傳輸
- 應用分析 - ftp文件傳輸應用分析
- 文件傳輸協(xié)議的設計與實現(xiàn)課程設計
- 畢業(yè)論文——基于android的ftp文件傳輸
- 畢業(yè)論文——基于android的ftp文件傳輸
- 畢業(yè)論文——基于android的ftp文件傳輸
- java課程設計---局域網(wǎng)的聊天和文件傳輸
- 串行通信微機原理課程設計--串行通信實現(xiàn)文件傳輸
- 基于FTP協(xié)議的文件傳輸服務器的研究.pdf
- 基于ARM內(nèi)核SOC芯片的FTP文件傳輸系統(tǒng)的設計及實現(xiàn).pdf
- 計算機網(wǎng)絡文件傳輸及管理系統(tǒng)課程設計報告
- 文件傳輸與聊天系統(tǒng)設計
- 一種類FTP的文件傳輸共享系統(tǒng)研究.pdf
- 文件傳輸與聊天系統(tǒng)設計.doc
- 計算機網(wǎng)絡課程設計--文件傳輸協(xié)議的簡單設計與實現(xiàn)
- 計算機科學與技術畢業(yè)論文-基于android的ftp文件傳輸
- 網(wǎng)絡文件傳輸機制探析
評論
0/150
提交評論