freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-ftp客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)—論文-在線瀏覽

2025-02-03 17:25本頁面
  

【正文】 ................ 21 測(cè)試總結(jié) ............................................................ 21 結(jié) 論 .................................................................. 22 參考文獻(xiàn) .................................................................. 23 致 謝 .................................................................. 24 聲 明 .................................................................. 25 1 引言 FTP 是互聯(lián)網(wǎng)上使用最廣泛的文件傳輸協(xié)議。它主要解決了在不同操作系統(tǒng)下處理文件格式的不兼容性。傳統(tǒng)方式需要在 DOS 下輸入命令,對(duì)于普通用戶是件極困難的事。它已成為人們不可或缺的軟件之一了。 。通過這次課題,對(duì)整個(gè)開發(fā)過程有深入的了解,提高實(shí)踐能力。 選題目的 FTP 是 Inter 上使 用最廣泛、是共享資源的主要途徑之一。它的特點(diǎn)是訪問方便,操作簡單,易于管理。 選擇此課題作為畢業(yè)設(shè)計(jì),是希望將平日學(xué)習(xí)累積的知識(shí)用于實(shí)踐,開發(fā)出該系統(tǒng)的各項(xiàng)功能,使用戶很簡單的就能登錄 FTP 服務(wù)器、上傳下載數(shù)據(jù)等功能的需求。 所以 選 擇了 Java 語言來 開發(fā) 實(shí)現(xiàn) 文件傳輸 功能 的 FTP 客戶端 。系統(tǒng)界面模塊可以使用 Swing、 AWT,制作出其 GUI 部分。 Java 語言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡單的類機(jī)制以及動(dòng)態(tài)的接口模型,高度抽象,采用純面向?qū)ο缶幊痰乃枷牒头椒ā?Java 程序運(yùn)行的硬件或軟件環(huán)境,稱為平臺(tái)。 Java API: Java 應(yīng)用程序接口,用于 Java 程序的使用和 Java 虛擬機(jī)的接口?;谟布钠脚_(tái),即 Java 程序運(yùn)行的特定的硬件環(huán)境。該通信模式首先在客戶機(jī)和服務(wù)器之間定義一套通信協(xié)議 ,并創(chuàng)建一 Socket 類,利用這個(gè)類建立一條可靠的鏈接;然后,客戶機(jī) /服務(wù)器再在這條鏈接上可靠地傳輸數(shù)據(jù)。這就是典型的 “ 請(qǐng)求 應(yīng)答 ” 模式。 圖 2 2層 C/S結(jié)構(gòu)圖 FTP 基礎(chǔ) 文件傳送協(xié)議 FTP( File Transfer Protocol)是 Inter 文件傳送的基礎(chǔ)。 與大多數(shù) Inter 服務(wù)一樣, FTP 也是一個(gè)客戶機(jī) /服務(wù)器系統(tǒng)。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。客戶機(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中?!跋螺d”文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上;“上載”文件就是將文件從自己的計(jì)算機(jī)中拷貝至遠(yuǎn)程主機(jī)上。 圖 3 系統(tǒng)工作簡易流程 FTP 客戶端設(shè)計(jì)的原理, FTP 使用兩條 TCP 連接來完成文件傳輸:控制連接與數(shù)據(jù)連接。在服務(wù)器啟動(dòng)后,服務(wù)器就會(huì)在端口 21 等待客戶的連接請(qǐng)求,有用戶需要傳輸文件時(shí),客戶與服務(wù)器的端口 21 建立一個(gè)控制連接,用來傳送客戶的命令和服務(wù)器的應(yīng)答,該連接一直保持到客戶與服務(wù)器通信結(jié)束為當(dāng)客戶發(fā)出數(shù)據(jù)傳輸命令時(shí),服務(wù)器會(huì)主動(dòng)與客戶建立數(shù)據(jù)連接,并與其進(jìn)行數(shù)據(jù)交換。用戶接口為客戶端用戶提供一定形式的輸入界面,接收用戶的命令,將其轉(zhuǎn)換成標(biāo)準(zhǔn)的 FTP 命令,最終將控制連接上的 FTP 響應(yīng)轉(zhuǎn)換成用戶可 理解的方式。在最常用的流模式中,文件結(jié)束是用數(shù)據(jù)連接的關(guān)閉來表示的,換句話說,每傳輸一個(gè)文件或文件列表,系統(tǒng)就會(huì)再建立一個(gè)新的數(shù)據(jù)連接。如果用戶既要求易于進(jìn)行可視化布局,又要求有較大的靈活性, JBuilder 就是最好的選擇。 功能需求 該系統(tǒng)主要包括以下幾個(gè)方面: ; ; /本地目錄 和文件模塊; /下載文件模塊。 性能需求: 整個(gè)系統(tǒng)操作應(yīng)當(dāng)簡便,界面友好,運(yùn)行穩(wěn)定,執(zhí)行速度快。 設(shè)計(jì)思路 上傳下載程序主要完成文件的傳輸,是系統(tǒng)的核心模塊。這樣使用 JBuilder9,就節(jié)約了大量的開發(fā)時(shí)間。由于本 程序只是 FTP 客戶端,下面將分別對(duì)整個(gè)系統(tǒng)的圖形界面、登錄 模塊 、 遠(yuǎn)程 瀏覽 模塊、本地瀏覽模塊、 上傳 模塊和 下載 模塊六 大模塊的程序?qū)崿F(xiàn)細(xì)節(jié)進(jìn)行詳細(xì)介紹。利用此類的方法,我們可以遠(yuǎn)程登錄到 FTP 服務(wù)器,列出該服務(wù)器上的目錄,設(shè)置傳輸協(xié)議,以及傳送文件。當(dāng)然,還有很多此類開源的庫,可以實(shí)現(xiàn) FTP的功能。以下是 部分 FtpClient的 常用核心函數(shù)說明 : FtpClient 有三種不同形式的構(gòu)造函數(shù),此構(gòu)造函數(shù)將創(chuàng)建一 FtpClient 類,但不建立 FTP 連接。 2. public FtpClient(String hostname) 登錄模塊 服務(wù)器目錄瀏覽模塊 上傳模塊 本機(jī) 目錄瀏覽的設(shè)計(jì) FTP 客戶端 下載模塊 此構(gòu)造函數(shù)利用給出的主機(jī)名建立一條 FTP 連接,使用默認(rèn)端口號(hào)。 類 ftpClient 提供了如下兩個(gè)可用于打開與FTP 服務(wù)器之間的連接的方法。 2. public void openServer(String host,int port) 此 方法用于建立一條與指定主機(jī)、指定端口上的 FTP 服務(wù)器的連接。這時(shí)需要利用下面的方法。 public void login(String username, String password) 下面是 FtpClient 類所提供的一些控制命令。 public void cdUp(): 該命令用于把遠(yuǎn)程系統(tǒng)上的目錄切換到上一級(jí)目錄。 public void binary(): 該命令可把傳輸格式設(shè)置為二進(jìn)制格式。這些方法返回的是可供讀或?qū)懙妮斎?、輸出流? public TelInputStream list() 返回與遠(yuǎn)程機(jī)器上當(dāng)前目錄相對(duì)應(yīng)的輸入流。 public TelOutputStream put(String filename) 以寫方式打開一輸出流,通過這一輸出流把文件 filename 傳送到遠(yuǎn)程計(jì)算機(jī)。 文件處理界面的設(shè)計(jì)是在 jPanel2 的基礎(chǔ)上實(shí)現(xiàn)的,增加了一些其他控件。還有三個(gè)按鈕:上傳,下載,選擇目錄下個(gè)命令按鈕。 private JTextField jTextField1 = new JTextField()。 private JTextField jTextField3 = new JTextField()。 FtpClient ftp=null。 JPanel jPanel1 = new JPanel()。 PaneLayout paneLayout1 = new PaneLayout()。 JLabel jLabel1 = new JLabel()。 JLabel jLabel3 = new JLabel()。 JLabel jLabel4 = new JLabel()。 Box box1。 JPanel jPanel4 = new JPanel()。 BorderLayout borderLayout2 = new BorderLayout()。 JButton jButton3 = new JButton()。 jscrollPane jscrollPane2 = new jscrollPane()。 DefaultTreeModel model1 = new DefaultTreeModel(root1)。 JButton jButton5 = new JButton()。 List list1 = new List()。 JTextArea jTextArea1 = new JTextArea()。 JButton jButton2 = new JButton()。 JLabel jLabel6 = new JLabel()。以下是登錄程序代碼: // 功能:登錄連接到 FTP 服務(wù)器。 String hostname=()。 } catch (IOException ex) { ()。 ftp= new FtpClient(hostname)。 //使用二進(jìn)制協(xié)議 ()。 } catch (IOException ex){ //連接主機(jī)失敗 (連接主機(jī) :+hostname+失敗 !)。 } //連接成功后的顯示 (連接主機(jī) :+hostname+成功 !)。 } 圖 7 登錄界面 瀏覽程序 我們利用 FtpClient 控件可以實(shí)現(xiàn) FTP 客戶端應(yīng)用程序的瀏覽功能,瀏覽功能的實(shí)現(xiàn)程序由瀏覽服務(wù)器端文件和瀏覽本地文件兩部分組成。一般 List 方法會(huì)列出 FTP 端目錄與文件的詳細(xì)內(nèi)容,包括創(chuàng)建文件日期,文件大小,目錄與文件的名稱等相關(guān)信息。而這個(gè)方法執(zhí)行后的結(jié)果是 TelInputStream 數(shù)據(jù)流,本系統(tǒng)要把它顯示在一個(gè)列表框中,還需要進(jìn)行分解操作。 private void ReloadList(){ StringBuffer buf=new StringBuffer()。 ()。 (true)。\n39。 (0)。 } } //完成后關(guān)閉 TelInputStream 數(shù)據(jù)流 ()。 } //刷新列表框的內(nèi)容 ()。 int ch。 DIRName=(begin).trim()。 } 本地瀏覽程序 文件傳輸是一個(gè)雙向的過程,它涉及到客戶端和服務(wù)器之間數(shù)據(jù)流傳輸?shù)膯栴},人們不僅需要把服務(wù)器上的文件下載到指定的文件下,本地瀏覽程序通 過jTree1, jButton5 和 JFileChooser 三種控件實(shí)現(xiàn)。其實(shí)現(xiàn)的源程序代碼如下: // 選擇本地文件目錄 void jButton5_actionPerformed(ActionEvent e) { JFileChooser JFileCh = new JFileChooser()。//只選擇目錄 int returnVal = (this)。//得到根目錄文件 if(()) root2=()。 setTree((),rootTree2)。//設(shè)置模型的根節(jié)點(diǎn) ()。//顯示提示信息。 文件下載程序 當(dāng)我們想下載文件,可以使用 TelInputStream 流,并使用 FTPClient 控件的 get 方法將流的源頭綁定,再將 TelInputStream 流綁定到 DataInputStream流中,然后再在本地新建一個(gè) 文件,并綁定到 RandomAccessFile 流中,執(zhí)行DataInputStream流的讀并寫入 RandomAccessFile 流中,就可以完成下載功能了。為了可同時(shí)選擇多個(gè)文件下載,必須先設(shè)置 list1控件的 MultipleMode 屬性為 true,以便能夠在遠(yuǎn)程瀏覽框中進(jìn)行多重選擇。一直重復(fù)至所有被選擇文件或者目錄都被完成操作為止。 文件上傳程序 上傳文件基本上與下載文件類似,不過使用的是 TelOutputStream 流,并使用 FTPClient 控件的 put 方法和流綁定,再將 TelOutputStream 流綁定到DataOutputStream 流中,然后在本地新建一個(gè)文件,并綁定到 RandomAccessFile流中,執(zhí)行 RandomAccessFile 流的讀并寫入 DataOutputStream 流中,就可以完成上傳功能了。 }else{ File file1=new File(conPath())。 int ch。 RandomAccessFile sendFile = new RandomAccessFile( conPath() , r)。 TelOutputStream outs = (filename)。 //上 傳 處理 while (() < ()) { ch = ()。 } //上 傳 完成,關(guān)閉輸入輸出流 ()。 } catch (IOException ex) { ()。 } } } 圖 10 上傳與下載 5 系統(tǒng)測(cè)試及問題處理 系統(tǒng)測(cè)試機(jī)器 : CPU: AMD Athlon 2500+ MAINBOARD: Epox 8RDA3+ MEMORY: Kingston DDR 768M HARDDISK: WESTDIGITAL 120JB 程序測(cè)試環(huán)境 : Windows XP SP2 Windows Server 2021 Jbuilder 9 JRE ServU 測(cè)試結(jié)果 在本地系統(tǒng)安裝 FTP 服務(wù)器端軟件 ServU,用于提供 FTP 服務(wù) , IP 地址,端口號(hào)使用默認(rèn)端口 21。 (ServU的 安
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1