国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FTP 客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)

2015-06-02 12:29宋新艷
電腦知識與技術(shù) 2015年9期

宋新艷

摘要:在Internet傳輸文件的FTP協(xié)議及軟件實(shí)現(xiàn),其功能多,實(shí)現(xiàn)技術(shù)復(fù)雜,許多功能用戶很少使用。該文介紹了在win7環(huán)境下應(yīng)用Java語言開發(fā)的FTP客戶端軟件。軟件在Internet/LAN的環(huán)境下實(shí)現(xiàn)了客戶機(jī)和服務(wù)器之間文件傳輸和操作等功能。軟件實(shí)現(xiàn)FTP協(xié)議的基本和常用功能并采用可視化界面,用戶使用簡單方便。

關(guān)鍵詞:FTP;文件傳輸;上傳;下載

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)09-0110-02

Abstract:FTP protocol and software, used to transmit files, is a complex technique and its many functions have not been developed in Internet. This paper introduced the software of FTP client, which is developed in the environment of win7 and JAVA. The software is carrying out file transmission and file operation between Client and Server in Internet/LAN. Integrated functions of the softwarewere the following:file uploading, file downloading, file browsing at client, file browsing at server and information feedback. The software has visual interfaces and the basic and common functions of FTP protocol.It is easy to use.

Key words:FTP; file transmission; upload, download

文件傳輸協(xié)議(FTP)是使用最為普遍的網(wǎng)絡(luò)協(xié)議之一,由最早的簡單文件傳輸協(xié)議(TFTP)發(fā)展而來,經(jīng)過不斷的修正與完善,已成為網(wǎng)絡(luò)間文件傳輸?shù)闹匾獏f(xié)議。FTP在Internet上用于控制文件的雙向傳輸,可以在網(wǎng)絡(luò)中傳輸電子文檔、圖片、聲音、影視及程序等多種類型的文件。市面上FTP軟件一般功能多,實(shí)現(xiàn)技術(shù)復(fù)雜,許多功能用戶很少使用。為了適應(yīng)公司員工上傳和下載文件需要,在 win7環(huán)境下應(yīng)JAVA開發(fā)了一套FTP客戶端軟件。該軟件在Inter-net/LAN的環(huán)境中能實(shí)現(xiàn)客戶機(jī)與服務(wù)器之間文件的傳輸和操作的基本功能。

1 FTP相關(guān)技術(shù)

1.1 FTP工作原理

FTP是網(wǎng)絡(luò)上的應(yīng)用層協(xié)議,使用TCP協(xié)議傳輸。FTP會話時(shí)包含了兩個(gè)通道,一個(gè)叫控制通道,一個(gè)叫數(shù)據(jù)通道??刂仆ǖ朗呛虵TP服務(wù)器進(jìn)行溝通的通道,連接FTP,發(fā)送FTP指令都是通過控制通道來完成的。數(shù)據(jù)通道是和FTP服務(wù)器進(jìn)行文件傳輸或者列表的通道。

1.2 FTP的工作方式

FTP的工作方式有PORT模式和PASV模式兩種。

PORT模式:是主動模式,在主動傳輸模式下,由服務(wù)器向客戶端發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接??蛻舳说倪B接端口由服務(wù)器端和客戶端通過協(xié)商確定。主動傳輸模式下,F(xiàn)TP服務(wù)器使用20端口與客戶端的端口進(jìn)行連接,并傳輸數(shù)據(jù),客戶端只是處于接收狀態(tài)。

PASV模式:是被動模式。在被動傳輸模式下,F(xiàn)TP服務(wù)器等待客戶與其聯(lián)系。由客戶端向服務(wù)器發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接。被動傳輸模式下,F(xiàn)TP服務(wù)器打開一個(gè)暫態(tài)端口等待客戶端對其進(jìn)行連接,并傳輸數(shù)據(jù),服務(wù)器并不參與數(shù)據(jù)的主動傳輸,只是被動接受。

2 系統(tǒng)設(shè)計(jì)

2.1總體設(shè)計(jì)

1)基本功能:界面設(shè)計(jì);本機(jī)文件資源瀏覽;遠(yuǎn)程文件資源瀏覽;與服務(wù)器連接時(shí)的信息反饋。

2)文件傳輸功能:文件的上傳和下載。

3)擴(kuò)展功能:傳輸進(jìn)度顯示;文件瀏覽、文件刪除功能。

2. 2 系統(tǒng)功能設(shè)計(jì)

文件傳輸模塊是整個(gè)系統(tǒng)的核心。此模塊實(shí)現(xiàn)FTP客戶端與服務(wù)器之間的文件傳送。文件的傳輸包括上傳和下載兩個(gè)功能。

本機(jī)文件瀏覽模塊的功能是對本機(jī)上的文件進(jìn)行瀏覽。

遠(yuǎn)程瀏覽模塊的功能是對服務(wù)器上的文件進(jìn)行瀏覽。

文件操作模塊主要實(shí)現(xiàn)文件刪除、打開等功能。

傳輸進(jìn)度、信息顯示模塊顯示客戶端與服務(wù)器之間進(jìn)行信息交過程的實(shí)時(shí)情況(連接成功與否、上傳和下載的進(jìn)度等)。

3 系統(tǒng)實(shí)現(xiàn)

3.1登錄模塊

客戶端中使用connectServe方法來實(shí)現(xiàn)連接服務(wù)器功能,首先是使用FtpClient類的openServer(string server)方法打開遠(yuǎn)程FTP服務(wù)器,然后使用FtpClient類的login(user, password)方法登錄服務(wù)器。登錄遠(yuǎn)程FTP服務(wù)器有兩種方式,一種是注冊用戶登錄,另一種是以匿名方式登錄。為了安全,本系統(tǒng)使用第一種方式登錄,所以需要擁有該服務(wù)器的注冊用戶名和密碼。

為了建立一條與指定主機(jī)、指定端口上的FTP服務(wù)器的連接,首先定義4個(gè)變量,命名為ip(服務(wù)器IP地址),username(用戶名),port(端口號),password(密碼),分別用來接收來自數(shù)據(jù)輸入界面的數(shù)據(jù)。連接服務(wù)器的命令函數(shù):openServer(String host,String username, int port, String password )。然后將接收到的數(shù)據(jù)發(fā)送至服務(wù)器驗(yàn)證,驗(yàn)證成功則使用append()方法在信息顯示界面中提示連接成功,失敗則顯示無法連接,并給出錯誤提示。

3.2 本地文件瀏覽模塊

功能是顯示本機(jī)的文件目錄。首先用類DefaultTableModel創(chuàng)建一個(gè)表格模型,DefaultTableModel是 TableModel 的一個(gè)實(shí)現(xiàn),它使用一個(gè) Vector 來存儲單元格的值。表格包括三個(gè)數(shù)據(jù)項(xiàng):文件名,文件大小,修改日期。通過使用一個(gè)二維數(shù)組Object[][]來存儲這三個(gè)數(shù)據(jù)。通過方法getCurrentDirectory()獲得當(dāng)前目錄,再利用listFile()獲取該目錄下的文件,經(jīng)解析后存入二維數(shù)組中。

3.3 遠(yuǎn)程文件瀏覽模塊

具體功能是顯示服務(wù)器端的文件目錄。當(dāng)連接服務(wù)器,登入成功之后,可以使用FtpClient控件的List()方法來獲取FTP服務(wù)器上目錄與文件的詳細(xì)內(nèi)容,包括創(chuàng)建文件日期,文件大小,目錄與文件的名稱等相關(guān)信息。在得到文件名后,調(diào)用其方法getSystemIcon()就可以獲得相應(yīng)的文件圖標(biāo)。由于List()方法執(zhí)行后的結(jié)果是TelnetInputStream數(shù)據(jù)流,本系統(tǒng)通過getFileAll()方法進(jìn)行解析后把它顯示在表格中。

3.4 上傳模塊和下載模塊

1)文件下載模塊

文件的下載,使用TelnetInputStream流,并使用FTPClient控件的get()方法將流的源頭綁定,然后再在本地用將要下載的文件或者目錄名來新建一個(gè)文件或者目錄,并綁定到FileOutputStream流中,執(zhí)行TelnetInputStream流的讀并寫入FileOutputStream流中,就可以完成下載功能。文件下載流程圖如圖1所示。在下載之前程序首先需要判斷瀏覽框中選中的是目錄還是文件。若選中的是文件,則直接調(diào)用方法:void downloadFile(String filename, String newfilename);

若選中的是目錄需要使用遞歸的方法下載目錄中的文件或者是子目錄。它調(diào)用了三個(gè)方法,依次為:void downloadDir(String filename);

void downloadFile_x(String pathname,String filename);

void downloadFile(Stringfilename, String newfilename);

2)文件上傳程序

文件的上傳和文件的下載基本類似,不過使用的是TelnetOutputStream流,并使用FtpClient控件的put方法和流綁定,然后在遠(yuǎn)程目錄上新建要上傳的文件或者目錄,將本地文件綁定到FileInputStream流中,執(zhí)行FileInputStream流的讀入并寫入TelnetOutputStream流中即可完成上傳功能,對于目錄的上傳同樣需要遞歸方法來實(shí)現(xiàn)。

3.5 傳輸進(jìn)度、信息顯示模塊

1)傳輸進(jìn)度

該模塊幫助用戶了解文件傳輸?shù)臓顟B(tài),使用Timer組件來實(shí)現(xiàn)。

Timer函數(shù)的構(gòu)造如下:Timer(int delay,ActionListener);

利用Timer組件根據(jù)所給予的dalay時(shí)間內(nèi)周期性地觸發(fā)ActionEvent事件,調(diào)用ActionListener接口所定義的actionPerformed()方法,通過計(jì)算已傳輸?shù)膬?nèi)容和要傳輸?shù)奈募拇笮?,?shí)現(xiàn)傳輸進(jìn)度的顯示。start()方法和stop()方法分別用于Timer組件的激活和停止。

2)信息顯示模塊

使用JTextArea類可以創(chuàng)建顯示多行文本的對象,通過方法append()來顯示客戶端與服務(wù)器的交互信息,如顯示登入成功與否,顯示來自服務(wù)器端的友好信息,以及文件上傳和下載成功與否。

4 結(jié)束語

該軟件能夠以帳戶和密碼遠(yuǎn)程登入FTP服務(wù)器,完成文件的上傳與下載并保證文件的完好。軟件體積小巧、直觀,利用圖形界面操作簡單易懂。

參考文獻(xiàn):

[1] Douglas E Comer. 用TCP/IP進(jìn)行網(wǎng)際互聯(lián)(第一、二、三卷)[M]. 林遙, 譯. 北京: 機(jī)械工業(yè)出版社, 2004.

[2] 張峰. Java程序設(shè)計(jì)與項(xiàng)目實(shí)戰(zhàn)(全程實(shí)錄)[M]. 北京: 清華大學(xué)出版社, 2011.

[3] 董迎紅, 王薇. Java程序設(shè)計(jì)案例教程與實(shí)訓(xùn)[M]. 北京: 北京大學(xué)出版社, 2011.

[4] 劉德春. FTP上傳控件的實(shí)現(xiàn)[J]. 電腦編程技巧與維護(hù), 2011, 19(20): 104-108.