周冰倩
(成都信息工程大學(xué),四川 成都 610225)
基于JAVA的文件傳輸開(kāi)發(fā)應(yīng)用
周冰倩
(成都信息工程大學(xué),四川 成都 610225)
利用FTP文件傳輸協(xié)議,使用JAVA語(yǔ)言編寫文件傳輸應(yīng)用軟件,電腦端能夠遠(yuǎn)程管理手機(jī)文件,同時(shí)手機(jī)端也能通過(guò)該軟件進(jìn)行文件傳輸,實(shí)現(xiàn)了信息資源的共享。
互聯(lián)網(wǎng);FTP協(xié)議;服務(wù)器;客戶端;文件傳輸;java
在當(dāng)今的網(wǎng)絡(luò)時(shí)代,在網(wǎng)上進(jìn)行文件的傳輸更為頻繁。這樣,基于FTP的客戶端和服務(wù)器軟件也就被大家所認(rèn)識(shí)和使用。FTP(File Transfer Protoco1)——文件傳輸協(xié)是用來(lái)傳送文件的協(xié)議,是互聯(lián)網(wǎng)上使用最為廣泛的通訊協(xié)議。FTP協(xié)議,充分體現(xiàn)了互聯(lián)網(wǎng)資源共享的特點(diǎn),該協(xié)議定義了一個(gè)從遠(yuǎn)程計(jì)算機(jī)到本地計(jì)算機(jī)之間傳遞文件的一個(gè)標(biāo)準(zhǔn)。當(dāng)一個(gè)傳輸建立時(shí),一般需指定4個(gè)方面的屬性,文件類型,格式控制,文件結(jié)構(gòu)和傳輸模式。
2.1 系統(tǒng)設(shè)計(jì)分析
本系統(tǒng)的設(shè)計(jì)包括文件管理、遠(yuǎn)程管理、無(wú)線連接三個(gè)部分??傮w的處理流程如圖1所示:
圖1 總體處理流程
文件管理器具有分類瀏覽和文件管理兩個(gè)模塊。與PC機(jī)的連接是采用的遠(yuǎn)程管理。和大多數(shù)Internet服務(wù)一樣,F(xiàn)TP是一個(gè)客戶端/服務(wù)器系統(tǒng)。當(dāng)我們需要從電腦上訪問(wèn)手機(jī)端文件時(shí),一共是啟動(dòng)了兩個(gè)程序,其一是本地手機(jī)上的FTP客戶程序,其二是啟動(dòng)在遠(yuǎn)程計(jì)算機(jī)上的FTP服務(wù)器程序,從而通過(guò)遠(yuǎn)程操作在電腦端管理手機(jī)上的文件。無(wú)線連接部分主要是基于現(xiàn)在的Android智能手機(jī)上都配有WIFI掃描連接的功能,具體介紹在模塊設(shè)計(jì)中有詳細(xì)講解。
該系統(tǒng)的總體結(jié)構(gòu)如圖2所示:
圖2 總體結(jié)構(gòu)
2.2 模塊設(shè)計(jì)
在文件管理模塊中,對(duì)手機(jī)中文件的操作包括顯示文件的基本信息,文件列表,刪除,粘貼,拷貝,改名。能夠方便的對(duì)手機(jī)端的文件進(jìn)行操作。對(duì)文件的操作仍遵循Java語(yǔ)言中的方法,對(duì)文件夾的操作實(shí)際上包括對(duì)該目錄下的所有文件依次進(jìn)行操作,傳輸過(guò)程中需要解決的問(wèn)題是,在傳輸?shù)臅r(shí)候,網(wǎng)絡(luò)數(shù)據(jù)流和文件數(shù)據(jù)流都是以字節(jié)的形式包裝的,需要占用虛擬機(jī)中大量的內(nèi)存空間,當(dāng)文件過(guò)大時(shí),就會(huì)出現(xiàn)內(nèi)存溢出的錯(cuò)誤,我們采取的方法是大文件按照傳輸塊分成若干次分組進(jìn)行發(fā)送。在文件的傳輸過(guò)程中,機(jī)器資源的占用是比較大的并且還會(huì)耗費(fèi)一定的時(shí)間,但是安卓系統(tǒng)能很好的解決這個(gè)問(wèn)題,Android系統(tǒng)有一個(gè)響應(yīng)時(shí)間,當(dāng)超出了這個(gè)時(shí)間沒(méi)有響應(yīng),用戶就會(huì)得到提示關(guān)閉程序。針對(duì)耗時(shí)間比較長(zhǎng)的操作,Android系統(tǒng)設(shè)計(jì)了異步任務(wù)的方法,這種設(shè)計(jì)很好的解決了匿名線程存在的問(wèn)題,對(duì)文件的傳輸操作都是在異步任務(wù)中執(zhí)行的,實(shí)現(xiàn)了友好的人機(jī)交互界面,易于用戶操作。如圖3所示:
圖3 文件管理器
通信協(xié)議模塊中,Android手機(jī)與Android手機(jī)之間采用UDP和TCP協(xié)議完成通信,建立通信信道是利用UDP廣播的方式。傳輸文件則采用TCP協(xié)議接受和發(fā)送。實(shí)現(xiàn)流程如圖4所示:
圖4 通信模塊
WIFI管理模塊中,2部手機(jī)間建立點(diǎn)對(duì)點(diǎn)的連接,連接方式為無(wú)線局域網(wǎng),具體實(shí)現(xiàn)方式是在一部手機(jī)上建立無(wú)線AP,另一部手機(jī)就可以通過(guò)掃描附近的熱點(diǎn),連上這個(gè)WIFI網(wǎng)絡(luò),與之組成一個(gè)無(wú)線局域網(wǎng),從而進(jìn)行無(wú)線局域網(wǎng)內(nèi)的文件傳輸。
本系統(tǒng)的設(shè)計(jì)中,采用TCP協(xié)議傳輸文件,由文件管理器提供文件路徑,UDP協(xié)議提供連接手機(jī)的IP和端口,UDP協(xié)議和TCP協(xié)議靠WIFI熱點(diǎn)的啟動(dòng)和連接建立通信通道。邏輯結(jié)構(gòu)的設(shè)計(jì)見(jiàn)表1。
表1 通信協(xié)議變量
具體軟件的運(yùn)行模塊組合為多窗口的運(yùn)行環(huán)境,各個(gè)模塊在軟件運(yùn)行過(guò)程中能較好的交互信息,進(jìn)行數(shù)據(jù)處理。在分類瀏覽中,我們可以看到手機(jī)存儲(chǔ)的具體情況,文件管理中,能顯示手機(jī)里所有的文件夾,遠(yuǎn)程管理中,啟動(dòng)后可以從電腦端遠(yuǎn)程管理手機(jī)里的文件。啟動(dòng)連接里中,是我們運(yùn)行這個(gè)軟件首先要進(jìn)入的模塊,在啟動(dòng)連接里有兩個(gè)按鈕,其中一個(gè)是創(chuàng)建熱點(diǎn)按鈕,另一個(gè)是掃描附近的熱點(diǎn)按鈕。如圖5所示:
圖5 軟件界面
在裝有此軟件的兩部Android手機(jī)之間進(jìn)行文件傳輸,具體的操作步驟是:在啟動(dòng)連接里,一個(gè)手機(jī)開(kāi)啟WIFI,另一個(gè)手機(jī)開(kāi)啟搜索附近的熱點(diǎn),開(kāi)啟連接,然后開(kāi)始選擇文件發(fā)送,在對(duì)方的atest2文件夾接收。傳送成功后,就可以在atest2文件夾里顯示出傳遞過(guò)來(lái)的文件。此軟件的設(shè)計(jì)采用圖形界面,圖表簡(jiǎn)潔美觀,使用流程思路清晰,用于用戶操作。各個(gè)功能模塊劃分清晰,易于維護(hù)、分析和移植。
本文闡述了基于Java的文件傳輸開(kāi)發(fā)應(yīng)用。該軟件在文件管理器的基礎(chǔ)上集掃描熱點(diǎn)于一體,能在無(wú)網(wǎng)的條件下實(shí)現(xiàn)文件的快速傳遞。
[1] 唐敏,徐瑋,李昭原.基于Web的報(bào)表工具的設(shè)計(jì)與實(shí)現(xiàn)[J].京航空航天大學(xué)學(xué)報(bào),2001,4.
[2] 賈衛(wèi)忠,李存華.一種基于FTP的數(shù)據(jù)同步技術(shù)[J].計(jì)算機(jī)時(shí)代,2008,11.
[3] 詹金華,劉鋒.基于FTP協(xié)議的素材遷移服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,3.
[4] 劉天時(shí),孟東升,王田均,等.信息系統(tǒng)數(shù)據(jù)遷移方法研究與應(yīng)用[J].西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,1.
[5] 趙澤平.淺談FTP服務(wù)器的建立與使用,云南電力技術(shù), 2007,5.
[6] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].大連:大連理工大學(xué)出版社,2000, 221-225.
[7] 勞動(dòng)和社會(huì)保障部,中國(guó)就業(yè)培訓(xùn)技術(shù)指導(dǎo)中心.計(jì)算機(jī)網(wǎng)絡(luò)管理員——網(wǎng)絡(luò)管理師[M].北京:清華大學(xué)出版社,2004.59-75.
[8] 楊軍,李瑛,楊章玉.網(wǎng)管員成長(zhǎng)實(shí)錄[M].北京:電子工業(yè)出版社,2005,l82-190.
TP311.56