




已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于JAVA的多線程下載工具的實現(xiàn)摘要隨著現(xiàn)代科技的迅猛發(fā)展,以信息化為基礎的計算機技術已成為全球信息通信的雛形,計算機的發(fā)展逐漸進入一個全新的發(fā)展階段,成為人們現(xiàn)在眾所周知的熱門話題。計算機技術的發(fā)展,使得網(wǎng)絡成為人們獲取信息的重要途徑之一。人們獲取數(shù)據(jù),進行通信的方式其實就是將數(shù)據(jù)從一方傳送到另一方。但是在傳送的過程中,通常會由于一些突發(fā)狀況,如網(wǎng)絡接觸不良導致掉線、電腦死機、藍屏、或者電腦的一些其他原因,使得數(shù)據(jù)傳輸失敗。尤其適當用戶看到已經(jīng)傳到快要完成的時候,突然中斷,導致其不得不重新下載,這給用戶帶來了很大的不便。多線程下載可以實現(xiàn)多個任務同步下載,大大的提高了下在速度,為用戶節(jié)省了時間。因此,研究JAVA多線程下載對人們方便使用下載工具下載內容具有重要意義的。關鍵字JAVA;多線程下載;數(shù)據(jù)傳輸BASEDONTHEREALIZATIONOFTHEJAVAMULTITHREADDOWNLOADTOOLSABSTRACTWITHTHERAPIDDEVELOPMENTOFMODERNSCIENCEANDTECHNOLOGY,REPRESENTEDBYTHEINTERNETALSOOBTAINSTHERAPIDDEVELOPMENTOFCOMPUTERNETWORKTHEREFORE,PROMPTINGTHEDEVELOPMENTOFCOMPUTERHASENTEREDANEWSTAGE,WHICHBECOMEAHOTTOPICTHATISKNOWNTOALLANDEVERYONEHASCONCERNEDTHEDEVELOPMENTOFCOMPUTERTECHNOLOGYMAKESTHENETWORKBECOMEONEOFTHEMOSTIMPORTANTWAYSOFACCESSINGTOINFORMATIONTOGETTHEDATA,THEWAYPEOPLECOMMUNICATEISTOTRANSFERDATAFROMONEPARTYTOANOTHERPARTYBUTINTHEPROCESSOFTRANSFER,USUALLYDUETOSOMEUNEXPECTEDSITUATION,SUCHASNETWORKPOORCONTACTLEADTODROP,COMPUTERCRASHES,BLUESCREEN,ORSOMEOTHERREASONS,THECOMPUTERMAKESAFAILUREINDATATRANSMISSIONPARTICULARLYAPPROPRIATEUSERSHAVESEENITALMOSTFINISHED,SSUDDENLYBREAK,ITHASTODOWNLOADAGAIN,WHICHGIVESTHEUSERAGREATDEALOFINCONVENIENCEMULTITHREADEDDOWNLOADCANIMPLEMENTMULTIPLETASKSYNCHRONOUSDOWNLOAD,GREATLYIMPROVESTHESPEED,WHICHSAVESTIMEFORTHEUSERSTHEREFORE,BECONVENIENTFORPEOPLETOSTUDYJAVAMULTITHREADDOWNLOADINUSINGDOWNLOADTOOLSTODOWNLOADCONTENTISOFGREATSIGNIFICANCEKEYWORDSJAVAMULTITHREADEDDOWNLOADDATATRANSMISSION目錄摘要IABSTRACTII1緒論111課題背景112選題意義1121理論意義1122現(xiàn)實意義213現(xiàn)狀分析214本文結構32常用下載技術現(xiàn)狀421WEB下載422P2P下載523流媒體下載624多線程下載73相關概念介紹931JAVA多線程932線程的創(chuàng)建和退出及其函數(shù)調用933HTTP協(xié)議1034URL和HTTPURL104多線程下載工具需求分析1141用戶需求分析1142可行性分析11421技術可行性12422經(jīng)濟可行性12423操作可行性1243業(yè)務流分析125多線程下載工具的設計1351整體設計1352模塊劃分1353數(shù)據(jù)下載流程1454關鍵技術1555基本操作156多線程下載工具的實現(xiàn)1761下載任務模塊1762線程啟動模塊1863用戶界面模塊1964下載工具的實現(xiàn)197系統(tǒng)測試2271系統(tǒng)測試環(huán)境22711網(wǎng)絡環(huán)境22712硬件環(huán)境2372軟硬件配置23721測試程序的啟動23722測試新建下載任務24723下載任務測試25結論26參考文獻27致謝28外文原文29中文翻譯391緒論11課題背景21世紀的主要特征是數(shù)字化、網(wǎng)絡化和信息化,它是以網(wǎng)絡為核心的信息化時代。計算機對社會人類社會生活的各個方面并且對經(jīng)濟的發(fā)展發(fā)揮著無可替代的作用。計算機可以使使用者快速傳輸文件資料,以及使用戶在網(wǎng)上搜索并下載個人所需的各種資料,包括圖片、音樂、小說和視頻等。很多人認為現(xiàn)在已經(jīng)是INTERNET的時代,因為計算機在不斷的以各種形式改變著人們的生活和工作,他給各個國家的發(fā)展帶來了巨大的好處,并加快了全球信息化的進程。計算機的快速發(fā)展,使得人們對數(shù)據(jù)的獲得要求也越來越高。在計算機發(fā)展初期,用戶獲得數(shù)據(jù)的方式也很簡單,就是以讀取的形式,這種方式下載資料,有很多的弊端,不僅下載速度緩慢,而且當計算機由于某種原因斷網(wǎng)、斷電或電腦故障時,就會導致下載失敗,想要重新下載,就必須從頭開始再下載一次。而且,如果是下載較大型的文件,其傳輸速度緩慢,給用戶帶來太多的不便。除此之外,最初的下載方式不支持一次性下載多個文件,只能下載一個。所以對于計算機不斷發(fā)展的今天,研究出一種下載快速又相對穩(wěn)定的下載工具是至關重要的。現(xiàn)如今,計算機網(wǎng)絡以驚人的速度發(fā)展壯大,逐漸走進尋常百姓家中,已經(jīng)成為人們生活、學習和工作的必須品。而隨著計算機的發(fā)展,對于人們獲取資源的方式也在不斷的更新。開始人們獲取資源的形式是通過訪問服務器,即人們熟知的C/S模式,C是客戶端,S是服務端,客戶端通過向服務器發(fā)送請求,然后服務器把客戶端所需的數(shù)據(jù)傳遞過去,這是最簡單的傳遞方式。與此相類似的,還有目前流行的P2P(PEERTOPEER)下載技術,它的實現(xiàn)原理是兩個用戶之間可以傳遞信息,而無需經(jīng)過服務器的傳輸。與C/S模式相比,這種下載方式更加快速便捷。在此基礎上,隨著網(wǎng)絡的快速發(fā)展,人們還研究出一種流媒體下載技術,這種下載技術的優(yōu)點在于可以緩存下載,在使用的同時達到下載的目的,既方便了用戶的使用,也下載了資源,為用戶帶來了很大的方便。由以上的分析可以看出,隨著計算機網(wǎng)絡的不斷發(fā)展,信息在不斷更新的同時,技術也在不斷的進步,同時新的下載技術也在運用而生,為人們的生活和工作提供極大的便利。而多線程下載技術,是目前很流行的一種技術,它不僅可以解決多任務下載,即幾個文件同步下載,也有斷點續(xù)傳的功能,即在因為各種突發(fā)狀況阻止了正常的下載時,會保存已有的下載資料,當再一次下載時,會從上一次停止下載的地方開始繼續(xù)下載。多線程下載技術還可以提高帶寬和CPU的使用效率,可見這種下載技術與最初的下載技術相比為用戶帶來了很多的便捷,同時也加快了下載的速度。筆者撰寫本文,就是通過比較已有的下載工具,發(fā)掘其的優(yōu)缺點,在此基礎上研究和分析多線程下載技術,并實現(xiàn)了這一技術。12選題意義121理論意義從理論意義上看,多線程下載技術與傳統(tǒng)的下載工具相比,有很多優(yōu)點,這種技術可以提高下載速度從而增強系統(tǒng)利用率,除此之外由于該技術能夠支持多任務同步進行下載,所以可以提高CPU的利用率,還能充分利用系統(tǒng)內部的有用資源。在如今的科技高速發(fā)展情況下,軟件和新技術的開發(fā)的更新?lián)Q代速度飛快,人們對更加新穎、更加實用的軟件資源都如饑似渴,電子產業(yè)在擁有良好的市場的前提下,想要發(fā)展的話就必須擁有良好的運作經(jīng)營模式和遠大的發(fā)展戰(zhàn)略。而實際上國內的技術水準已經(jīng)與國外許多優(yōu)秀電子企業(yè)的水準不相伯仲,但是,圍欄網(wǎng)應對更加激烈的國際競爭,我們必須不斷研究新技術,提出新設想,設計出更加新穎方便的軟件來。因此,我們必須不斷學習,研究開發(fā)。本課題是基于學習JAVA課程以后,對其進一步研究,深入探索,并且借鑒前人的觀點而提出來的,在研究前人的技術后,對JAVA多線程進一步探索,做出了多線程下載工具。122現(xiàn)實意義從現(xiàn)實意義上看,電子時代是21世紀的新型代表,它推動著人們的生活逐漸步入信息化時代。據(jù)不完全統(tǒng)計,近幾年,我國網(wǎng)民以百分之三十多的速度遞增。據(jù)專家組統(tǒng)計目前我國網(wǎng)民的人數(shù)已經(jīng)達到四億多?,F(xiàn)如今,人們查找資料,第一時間想到的就是從網(wǎng)上獲取,下載自己所需的資源。而用戶對網(wǎng)絡的要求也不斷加大,他們?yōu)榱斯?jié)省時間,通常會選擇最安全,最穩(wěn)定,下載最快的工具來獲取資源。隨著十八大全面深化改革的提出,科技的發(fā)展占據(jù)著舉足輕重的作用,特別是對計算機技術的推動有很重要的意義。JAVA多線程下載工具可以為人們提高工作效率,有效利用資源配置有很大的幫助,所以本課題的提出既有一定的理論意義,也有一定的現(xiàn)實意義。13現(xiàn)狀分析線程技術的提出是在60年代左右開始的,然而,真正將多線程這一技術使用到操作系統(tǒng)中,是在80年代中期。傳統(tǒng)的UNIX通常也支持多線程技術,但是一般在一個進程中只能有一個線程,因此多線程便意味著多進程。到目前為止,多線程技術已經(jīng)被很多操作系統(tǒng)所支持,例如WINDOWS,LINUX。為什么有了進程這個概念后,還要引入線程的概念而且多線程技術和多進程技術的優(yōu)點何在以及什么樣的技術程序會使用多線程技術這些都是應該首先要考慮的問題。在20世紀60年代左右,進程這一名詞首先在麻省理工學院的MULTICS系統(tǒng)和IBM的CISS/360系統(tǒng)中被引進和說明。進程和線程是調度的基本單位,它們管理的是操作系統(tǒng)的核心部分,線程描述的是進程內的執(zhí)行,負責執(zhí)行包含在進程的地址空間中的代碼。進程有三個重要特性,分別是第一,獨立性。進程是系統(tǒng)中獨立存在的實體,它可以擁有自己獨立的資源。例如文件和設備描述符等。未經(jīng)進程的允許,其他進程不能訪問到這些資源。第二,動態(tài)性。程序只是一個靜態(tài)的指令集合,而進程是一個正在系統(tǒng)中活動的指令集合在進程中加入了時間的概念。進程具有自己的生命周期和各種不同的狀態(tài)。第三,并發(fā)性。并發(fā)性由獨立性和動態(tài)性衍生而來。若干個進程可以在單處理機狀態(tài)上并發(fā)執(zhí)行。并發(fā)與并行并行,指在同一時刻內,有多條指令在多個處理機上同時執(zhí)行。并發(fā),指在同一時刻內,只能有一條指令執(zhí)行,但多個進程的指令被快速輪換執(zhí)行,使得在宏觀上具有多個進程同時執(zhí)行的效果。線程和進程相比有以下優(yōu)點第一,“節(jié)儉”的多任務操作方式。在LINUX系統(tǒng)下,啟動一個新的進程必須分配給獨立的地址空間,建立眾多的數(shù)據(jù)表來維護它的代碼段、堆棧段和數(shù)據(jù)段。運行一個進程中的多個線程,彼此之間使用相同的地址空間、共享大部分數(shù)據(jù)、啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的時間。線程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間。第二,線程間方便的通信機制。對不同進程來說,它們具有獨立的數(shù)據(jù)空間,要進行數(shù)據(jù)的傳遞只能通過通信的方式進行,這種方式費時而不方便。由于同一進程下的線程之間共享數(shù)據(jù)空間,它們共享全局變量、共享進程指令、大多數(shù)數(shù)據(jù)和打開的文件(如描述字)、信號處理程序和信號處置、當前工作目錄、用戶ID和組ID,一個線程的數(shù)據(jù)可以直接為其他線程所用,快捷方便。第三,提高運用程序響應。對圖形界面的程序尤其有意義當一個操作耗時很長時,整個系統(tǒng)都會等待這個操作,此時程序不會響應鍵盤、鼠標、菜單的操作使用多線程技術,將耗時長的操作置于一個新的線程,可以避免這種尷尬的情況。第四,使多CPU系統(tǒng)更加有效。操作系統(tǒng)會保證當線程數(shù)不大于CPU數(shù)目時不同的線程運行于不同的CPU上。第五,改善程序結構。進程分為多個線程,成為幾個獨立或半獨立的運行部分,程序利于理解和修改。第六,數(shù)據(jù)共享問題。有的變量不能同時被兩個線程所修改,有的子程序中聲明為靜態(tài)的數(shù)據(jù)更有可能給多線程程序帶來災難性的打擊,帶來了同步問題。這些是最需要注意的問題。14本文結構本文通過參考各學者們對下載工具的研究內容,深入分析各種下載技術的工作原理以及它們之間的的優(yōu)缺點,著重探討多線程下載技術,并在此基礎上對多線程下載技術進行研究,實現(xiàn)其功能。首先從網(wǎng)絡的發(fā)展與現(xiàn)狀入手,對網(wǎng)絡上流行的下載工具進行介紹。隨后總體介紹論文的研究內容,隨后闡述論文涉及到的相關技術,對相關技術進行深入分析,介紹本文設計用到的相關概念,最后對全文進行總結。其結構設置如下第一部分緒論主要論述關于多線程下載技術的背景介紹,研究意義,現(xiàn)狀分析等;第二部分主要是分析常用的下載技術的現(xiàn)狀,并對比分析各種下載技術的優(yōu)缺點;第三部分對所涉及到多線程下載技術相關概念的介紹;第四部分多線程下載技術的需求分析;第五部分多線程下載技術的設計部分;第六部分多線程下載工具功能實現(xiàn)第七部分系統(tǒng)測試。2常用下載技術現(xiàn)狀網(wǎng)絡下載工具的技術的演進大體上可以劃分為四個階段,分別是WEB下載、P2P下載、流媒體下載、多線程下載。這些技術隨著計算機的發(fā)展,不斷有所突破,不斷進步著,給人們的生活帶來了極大的方便。以下分別對這些技術做簡要的介紹,對各自的主要技術核心做出分析。21WEB下載這種方式在互聯(lián)網(wǎng)上是最常用的,也是最傳統(tǒng)的方式。最初用戶在網(wǎng)上發(fā)送郵件或者下載資料時,都是使用C/S方式。C(CLIENT)是客戶,S(SERVER)是服務器它們都是在通信過程中的兩個應用程序。當客戶端向服務器提出下載請求時,服務器端收到請求后,就會將信息資源傳輸個給客戶端。最常用的WEB下載方式有兩種,分別是HTTP和FTP,這是兩種常見的傳輸協(xié)議,這兩種協(xié)議規(guī)定了瀏覽器如何向服務器請求萬維網(wǎng)文檔,并且服務器如何把文檔傳送給瀏覽器的過程。用戶使用這兩種協(xié)議與服務器發(fā)生鏈接,然后把數(shù)據(jù)傳送并保存到本地,實現(xiàn)下載的功能。HTTP是HYPERTEXTTRANSPORTATIONPROTOCOL的簡稱,即超文本傳輸協(xié)議。這種下載方式是最傳統(tǒng)的,也是最簡單的一種。其下載的基本原理就是客戶利用HTTP這種特殊的合適和規(guī)則向服務器傳遞信息,然后服務器發(fā)出應答請求,將數(shù)據(jù)傳輸給用戶并保存到用戶電腦上,以此來實現(xiàn)下載的目的。這種下載方式是最初開始的,其他在后來發(fā)展起來的下載方式都是以HTTP下載為基礎衍生出來的,它在所有的下載方式中發(fā)揮著很重要的作用。然而HTTP下載也存在著一些弊端,在客戶請求下載時,必須先建立TCP連接,然后才能向服務器發(fā)送下載資源的請求。但是一般服務器上的數(shù)據(jù)是有限的,有時候客戶可能無法找到自己想要的信息,這就給客戶資料的來源帶來麻煩。并且,在同一時間,可能會有不同的客戶向同一臺服務器發(fā)送了下載請求,導致服務器向多個客戶發(fā)送響應,會減緩響應的速度,從而導致下載速度緩慢,影響客戶的工作和學習。FTP是FILETRANSFERPROTOCOL的簡稱,中文名是文件傳輸協(xié)議,它是INTERNET上使用最廣的文件傳輸協(xié)議。FTP下載也是網(wǎng)絡上下載資源很傳統(tǒng)的一種方式。它提供交互式的訪問,允許用戶指明文件類型和格式、可以控制下載數(shù)據(jù)的用戶數(shù)、屏蔽計算機系統(tǒng)的細節(jié)、可以將下載資源的速度控制在一定的范圍等這些優(yōu)勢。這種下載技術比較適合下載容量比較大的資源,比如電影、視頻等。WEB下載的工作原理見圖21所示。22P2P下載P2P下載(PEERTOPEER),也叫對等連接指的是兩個主機在通信的過程中不加以分別服務請求方和服務提供方,它們是平級的關系。在通信的過程中,如果兩臺主機之間運行了對等連接軟件即P2P,它們之間的通信就是平等的,對等的。并且,二者之間可以相互下載對方存儲在硬盤中的共享文檔。P2P的工作原理的實質還是客戶服務器的方式,但是其中的每臺主機既可以作服務器也可以做客戶機,假設PC1向PC2發(fā)出下載請求,那么PC2作為服務器把信息傳遞給PC1,而同時PC3向PC1發(fā)出下載請求,此時PC1作為服務器傳遞數(shù)據(jù)給PC3。所以,PC1在這個過程中,既作為客戶機下載數(shù)據(jù),也作為服務器傳輸數(shù)據(jù)。這就是P2P的工作原理。有P2P的工作原理可以看出,P2P下載有很多優(yōu)點隨著網(wǎng)絡的不斷發(fā)展,網(wǎng)絡開始提供音頻、視頻等服務,利用寬帶上網(wǎng)的人數(shù)也不斷增加。而很多用戶接入寬帶是因為其網(wǎng)速比較快,在下載資料時速度一般較快。這種狀況致使網(wǎng)上的一些服務器是在超負荷下工作,有些服務器甚至在許多用戶不停地訪問時導致癱瘓,無法工作。而P2P下載方式不需要集中式的服務器,從而不存在集中服務器導致的瓶頸問題,因而這種下載方式受到很多用戶的青睞。在P2P的工作方式下,所有的文件都是在普通的網(wǎng)絡用戶之間傳輸,其原理相當于許多分散在各地的服務器,向其他的用戶提供下載資源。而且,P2P下載時,每個主機既是服務器又是客戶機,與C/S下載方式相比,降低了對服務器的性能要求,而且資源可以存儲在不同的節(jié)點(即主機)之間,對服務器的壓力不會很大,實現(xiàn)了負載均衡。再者,其下載過程是不同的節(jié)點之間進行的,其中如果這兩個節(jié)點之間出現(xiàn)了通信不暢通問題時,不會影響到其他主機之間的通信。這些優(yōu)點使得P2P文件下載技術在INTERNET數(shù)據(jù)下載中占據(jù)了相當大的份額,相比WEB下載的比例要多。然而隨著P2P下載技術的廣泛使用,也產生了一些問題需要解決。這些問題的產生一方面使人們想辦法解決這些問題,另一方面也促使人們開發(fā)更為先進的下載技術。其中最突出的問題就是文件的知識產權問題,還有就是不法分子會在網(wǎng)上傳播一些非法盜版的、不健康的視頻等,這些問題導致P2P下載技術很難有效的管理,這使得這一技術在這方面問題上還存在相當大的難度。其實,P2P網(wǎng)絡是一種較為脆弱的網(wǎng)絡,P2P中節(jié)點之間的關系,就好比是人與人之間的關系。這些節(jié)點的建立,就像人際關系一樣,為了共同的目的或興趣愛好聚集在一起。它們建立關系的時候是平等互信的,但是當網(wǎng)絡范圍擴大時,它們的關系很可能就會偏離原來的狀態(tài)。導致節(jié)點之間出現(xiàn)欺騙或傳遞虛假信息,所以P2P建立客戶端服務器服務下載請求收到下載請求圖21WEB下載原理圖的關系是較為脆弱的。而且,在P2P網(wǎng)絡中,服務器的身份已經(jīng)不是網(wǎng)絡的中心,但它扔控制整個網(wǎng)絡的工作,當服務器出現(xiàn)故障是會導致整個網(wǎng)絡的癱瘓。而且,目前P2P文件共享程序的大量使用,消耗了網(wǎng)絡上的大量帶寬,加之用戶一些并非重要文件的隨意下載,以及大量視頻、音頻等較大文件的下載,導致帶寬的浪費更為嚴重,致使網(wǎng)絡運營商也沒有從中盈利。除此之外,由于P2P網(wǎng)絡的不安全性,擁有大量用戶的網(wǎng)絡很可能成為黑客或不法分子圖利的對象,這些缺點導致P2P極大的不安全性。P2P下載方式的工作原理用圖表示,可見下圖22所示。23流媒體下載流媒體下載技術具有單一性,它專門用于網(wǎng)絡多媒體信息的傳播和處理。它與上述兩種下載方式不同的特點是它可以一邊播放一邊下載。它的使用需要一定的緩存。因為一個實時音視頻源或存儲的音視頻文件在傳輸中被分解為許多數(shù)據(jù)包,而網(wǎng)絡是動態(tài)變化的,各個包選擇的路由可能不同,所以到達客戶端的時延也不同,可能先發(fā)的數(shù)據(jù)包會后到。所以就要使用緩存來消除時延和抖動,以保證數(shù)據(jù)包順序正確,從而使媒體數(shù)據(jù)能夠連續(xù)輸出。其工作原理是首先它的實現(xiàn)需要合適的傳輸協(xié)議。它不使用TCP協(xié)議,因為TCP協(xié)議需要很多開銷,它不適合傳輸實時數(shù)據(jù)。在流式傳輸實現(xiàn)中,一般采用HTTP/TCP來傳輸控制信息,而用實時傳輸協(xié)議/用戶數(shù)據(jù)報協(xié)議RIP/UDP來傳輸實時數(shù)據(jù)。當用戶使用流媒體技術想要獲得自己做需要的信息時,用戶和服務器之間就會相互交換信息,使用的協(xié)議是HTTP/TCP,那么就會尋找到所需要的數(shù)據(jù)信息;瀏覽器使用音視頻客戶程序,使用HTTP從服務器檢索相關參數(shù)對音視頻客戶程序初始化,這些參數(shù)可能包括目錄、音視頻數(shù)據(jù)的編碼類型與音視頻檢索相關的服務器地址信息等;音視頻客戶程序及音視頻服務器運行實時流協(xié)議,以交換音視頻傳輸所需的控制服務器PC1PC2PC3圖22P2P下載技術工作原理信息,實時流協(xié)議提供執(zhí)行播放、快進、快倒、暫停及錄制等命令的方法;音視頻服務器使用RTP/UDP協(xié)議將音視頻數(shù)據(jù)傳輸給音視頻客戶程序,一旦音視頻數(shù)據(jù)抵達客戶端,音視頻客戶程序即可播放輸出。流媒體技術應用最廣泛的是在視頻點播、遠程教育等方面。由流媒體的工作原理了解到,這種下載方式一方面可以緩解網(wǎng)絡傳輸?shù)呢摀?;另一方面可以降低對客戶端緩存的要求。并且流媒體可以實現(xiàn)一邊下載一邊播放的特點,與傳統(tǒng)的下載工具先下載、后播放的方式相比,可以大大的縮短用戶的等待時間,給用戶帶來極大的方便。而且,一般傳輸?shù)奈募容^小,因而傳輸過程中往往比較快速,讀取信息也不會浪費大量的時間,可以很容易的獲得,這樣可以節(jié)省不少花費。再者該技術與傳統(tǒng)的方式不同,在輸送數(shù)據(jù)過程是不間斷的,所以它能夠很容易的追蹤與用戶有關系的信息。這一大功能在教育行業(yè)發(fā)揮了很大的作用。流媒體與傳統(tǒng)的下載工具相比還有一個更顯著的優(yōu)勢就是,我們生活中一般的電影和電視都是是單向的,內容也是不變的(電視的內容可以選擇)。當人們觀看時只能被動的接受,不管是什么節(jié)目,不能快進、快退隨意選擇,這樣會使瀏覽者沒有選擇權,只能跟隨媒體的選擇,有時會有一些用戶不想看的節(jié)目,但是用戶又必須觀看。而流媒體與傳統(tǒng)的媒體技術不同,它的資源要比傳統(tǒng)的多,而且是開放性的,內容也很豐富,用戶掌握了主動權,可以根據(jù)自己的意愿指揮、控制它,讓流媒體完全為自己主宰,服務于自身。雖然流媒體技術有很多優(yōu)點,但是這種技術是在傳統(tǒng)下載技術的基礎上,新發(fā)展起來的媒體技術,所以到目前為止它的標準不一,由此其在發(fā)展過程中可以不拘一格,以多種形式發(fā)展,從而促使其快速發(fā)展,但這也使得流媒體的發(fā)展受到障礙。目前,有關方面也意識到這個問題,研究人員正在擬定一個適合流媒體自身發(fā)展的標準。所以流媒體的發(fā)展在管理、商業(yè)運營等方面還存在一些技術問題有待解決。流媒體下載技術的工作原理如圖23所示。24多線程下載多線程是JAVA編程中的一部分,它是實現(xiàn)并發(fā)的一種重要手段,一個進程可以通過運行多個線程來并發(fā)地執(zhí)行多項任務。多線程下載指的是線程通俗的說就相當于定位WEB瀏覽器WEB服務器A/V播放器A/V服務器元文件HTTP/TCPRTSP/TCP圖23流媒體下載技術工作原理是通道,就像水流需要渠道一樣,線程是信息傳輸是所需要的通道。一個線程就相當于傳輸一個文件所需要的一個通道,同樣的意思多線程就是在同時下載多個資源時必須有多個通道,就像水流從不同的渠道流出一樣,下載的資源信息也是從不同的通道傳輸。當有好多個用戶同時申請從一臺服務器上下載數(shù)據(jù)的時候,這些用戶之間會共享該服務器的帶寬,當級別相同的時候,這些用戶之間會平均獲得下載進程。那么,線程越多,得到的資源就會越多,從而在下載資源的時候,其速度相對也會加快。多線程下載技術的優(yōu)點在于,它不同于單線程,單線程下載時只能發(fā)送一個請求,所以只能下載一個資源。而多線程恰恰相反,它可以同時發(fā)送多個請求,每個請求都會下載資源,這樣可以大大提高下載的速度,而且能夠充分使用主機資源和帶寬?;诙嗑€程下載技術的優(yōu)點,本文通過分析該技術的可行性和設計的總體過程,并實現(xiàn)了該下載技術。在本課程設計中,多線程技術用在新建新任務和下載線程上,在系統(tǒng)中我們可以開始多個下載線程下載同一個網(wǎng)絡上的資源而互不干擾。從宏觀上看是并行的,但對于微觀上來說,它卻是并行運行的,線程的運行在操作系統(tǒng)的調度下,各自得到一定的時間片,當某一線程獲取到時間片時,它就進入運行狀態(tài)。各個線程按照一定的協(xié)議分別獲取時間片。3相關概念介紹31JAVA多線程JAVA語言是SUN公司開發(fā)出來的一種面向對象進行設計的編程語言。是一種具有現(xiàn)代性的計算機語言,隨著技術的不斷更新,JAVA已被廣泛接受并推動了WEB的迅速發(fā)展。JAVA的一大目標就是使程序開發(fā)者可以交互程序,對一個問題可以分解成多個任務來執(zhí)行。而多線程可以使編寫的程序同時執(zhí)行多個任務。多線程指的是每個正在系統(tǒng)上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態(tài)執(zhí)行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執(zhí)行。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里執(zhí)行多任務。通常由操作系統(tǒng)負責多個線程的調度和執(zhí)行。線程是程序中一個單一的順序控制流程在單個程序中同時運行多個線程完成不同的工作,稱為多線程多線程為該程序的基石,通過開啟多個線程對資源進行請求和下載,使下載速度得到質的飛躍,也是該項目的關鍵。線程有兩組突出的特點,以下來介紹該組概念第一,線程的共性和個性。線程的共性。同一個進程中,線程都有共性多個線程將共享同一個進程虛擬空間。線程共享的環(huán)境包括進程代碼段、進程的公有數(shù)據(jù)(利用這些共享的數(shù)據(jù),線程很容易的實現(xiàn)相互之間的通訊)、線程打開的文件描述符、信號的處理器、進程的當前目錄和進程用戶ID與進程組ID。線程的個性。線程的個性是實現(xiàn)并發(fā)性的必要條件。每個線程都有自己的線程ID,這個ID在本進程中是唯一的。一個線程切換到另一個線程上時,必須將原有的線程的寄存器集合的狀態(tài)保存,以便將來該進程在被重新切換到時能得以恢復。線程必須擁有自己的函數(shù)堆棧,使得函數(shù)調用可以正常執(zhí)行,不受其他線程的影響。不同線程應該擁有自己的錯誤返回碼變量。第二,線程的并發(fā)性和并行性。線程的并發(fā)性。進程內至少同時有兩個線程進行時才存在并發(fā)性問題。在單處理器上執(zhí)行的多線程的進程內部,處理器可以在線程之間按照一定策略切換運行,從而實現(xiàn)了同時執(zhí)行。線程的并行性。至少同時需要有兩個線程在執(zhí)行時才存在并行性。在共享存儲多處理器上執(zhí)行的同一個多線程進程,在同一時刻內,有多條指令在多個處理機上同時執(zhí)行。32線程的創(chuàng)建和退出及其函數(shù)調用1線程的創(chuàng)建以下函數(shù)是線程的創(chuàng)建函數(shù),要創(chuàng)建新的線程,必須調用該函數(shù)。INTPTHTEAD_CREATEPTHTEAD_TTID,CONSTPTHTEAD_ATTR_TATTR,VOIDFUNCVOID,VOIDARG第一個參數(shù)為指向線程標識符的指針,第二個參數(shù)用來設置線程屬性,第三個參數(shù)是線程運行函數(shù)的起始地址,最后一個參數(shù)是運行函數(shù)的參數(shù)。2線程的退出(1)等待線程的結束函數(shù)INTPTHREAD_JOINPTHREAD_TTID,VOIDSTATUS第一個參數(shù)為被等待的線程標識符,第二個參數(shù)為一個用戶定義的指針,它可以用來存儲被等待線程的返回值。(2)終止線程函數(shù)VOIDPTHREAD_EXITVOIDVALUE_PTR唯一的參數(shù)是函數(shù)的返回代碼。33HTTP協(xié)議HTTP協(xié)議即超文本傳輸協(xié)議,是面向事務的應用層協(xié)議,使用TCP連接進行可靠傳輸,它是萬維網(wǎng)能夠可靠交換文件(如文本、聲音、圖像等)的重要基礎。瀏覽器和服務器之間想要通信時,每個網(wǎng)點都有一個服務器進程,用以監(jiān)聽TCP端口80。一旦瀏覽器發(fā)出建立連接請求,如果服務器監(jiān)聽到該請求,就建立了TCP連接,瀏覽器就像服務器發(fā)出請求,服務器就會返回所請求的信息作為響應。最后,將TCP連接釋放。在整個過程當中,所遵循的規(guī)則就是HTTP協(xié)議。它使用了面向連接的TCP作為傳輸曾協(xié)議,能夠保證數(shù)據(jù)的可靠傳輸。但是要說明的是,在客戶端瀏覽器和服務器建立連接時不一定必須使用TCP三次握手來實現(xiàn),HTTP只是假定它的傳輸層協(xié)議是可靠的,因此HTTP協(xié)議的下層協(xié)議只要是可靠的傳輸協(xié)議都可以被HTTP協(xié)議使用。雖然這種完成一次便斷開連接的形式,看起來增加了下次通信連接的網(wǎng)絡開銷,但是,站在服務器的角度來看,這種方式可以減少服務器的持續(xù)連接的開銷,當有多個客戶端連接該服務器時,這種保持連接的消耗會變得非常巨大,以至于服務器不能再接收更多客戶端的連接,減少了服務器的利用率。34URL和HTTPURLURL即統(tǒng)一資源定位符,是表示從INTERNET上得到的資源位置和訪問這些資源的方法。它給資源(如文件、圖像、視頻等)的位置提供了一種抽象的識別方法,這樣就可以給資源定位,通過這種定位,系統(tǒng)就可以對它們實施一些操作,如查找。存儲等。URL一般由四部分組成,它的表示方法是/因為萬維網(wǎng)的訪問要使用HTTP協(xié)議,那么能夠標識這個地址的唯一東西就是HTTP的URL。此時的表示方法就是HTTP/例如當訪問太原理工大學的網(wǎng)頁時,其URL就是HTTP/WWWTYUTEDUCN4多線程下載工具需求分析41用戶需求分析信息化時代的今天,網(wǎng)絡成為人們生活、工作的必須品,人們獲取資料的方式也是通過網(wǎng)絡來得到。人們對網(wǎng)絡需求增加的同時,對其要求也逐漸嚴格。他們都希望以最快的速度獲取信息,甚至不想多等一分鐘,有的人可能想著只要輕觸鍵盤就能獲得所需要的信息。例如,人們在網(wǎng)上希望找到自己想要下載的視頻、音樂等。人們現(xiàn)在不單是使用瀏覽器關注網(wǎng)頁上的東西,很多人們喜歡用一些軟件下載自己想要的資料,而且對下載工具的速度和安全性要求越來越高。而多線程下載技術能夠在同一時間運行多個線程,也就是說它可以同時下載多個資源,通俗的說就是可以將一個下載工作劃分為幾個小任務共同完成,這樣可以在很大程度上提高資源的下載效率。傳統(tǒng)的下載工具很難解決這樣一個問題,就是如果下載的文件較大,或者所需的時間較長時,那么此時對計算機和網(wǎng)絡的要求就很高。也就是在此過程中,計算機不能出任何問題,否則下載就會失敗。例如有時計算機會斷電、或者斷網(wǎng)、或者造成死機、藍屏等,這時必須重啟計算機。那么,要是傳統(tǒng)下載工具的話,之前下載的東西就會丟失,還要重新開始下載,這就會浪費用戶大量的時間。而多線程下載,有一個功能就是斷點續(xù)傳,意思是當有意外終止下載時,下載任務不會因此丟失,開始重新下載時,計算機會從停止的位置繼續(xù)下載,這樣可以減少不必要的麻煩,節(jié)省了大量的時間,所以多線程下載受到很多用戶的喜愛。見下表1所示,整合了該系統(tǒng)的需求分析表。表41多線程下載需求分析表序號功能名稱功能描述1多線程一個下載任務同時由多個線程同時下載2支持HTTP協(xié)議能夠下載HTTP類型的資源數(shù)據(jù)3斷點續(xù)傳當斷電或關閉下載任務后,下次能夠繼續(xù)下載4圖形界面輸入URL地址,保存地址和文件名,線程數(shù)42可行性分析可行性分析的目的就是對所作的系統(tǒng)進行分析,確定該系統(tǒng)是否可行。就是開發(fā)人員盡可能用較小的人力、物力、財力達到所期望的目的。其中基本的可行性分析包括技術可行性、經(jīng)濟可行性和社會可行性。下邊分別從這三方面探討多線程下載技術實現(xiàn)的可行性。421技術可行性多線程是JAVA語言的中很重要的一部分知識,而JAVA語言是目前使用最多的語言之一。多線程是實現(xiàn)并發(fā)的一種主要手段。在JAVA現(xiàn)有語言的基礎上,完全可以實現(xiàn)多線程下載這一任務。在開發(fā)過程中,其技術方案是開發(fā)工具ECLIPSEJDK開發(fā)環(huán)境WINDOWS運行環(huán)境WINDOWS422經(jīng)濟可行性經(jīng)濟可行性分析要估計項目的效益和成本,分析項目經(jīng)濟上是否合理和可行,能夠在最低成本的情況下,開發(fā)出最大價值的軟件。經(jīng)濟可行性解決的最重要的兩大問題是資金可得性和經(jīng)濟合理性。而多線程下載技術的開發(fā),在很大程度上可以為用戶帶來便捷,能夠提高下載速度。而該下載程序的開發(fā)也不會消耗太多的資源,所以在這方面該軟件完全符合。423操作可行性該下載程序設計好后,對用戶的計算機能力要求不高,只需要會計算機的基本操作即可。而且,程序設計的界面友好、操作非常簡單,用戶不用花費太多的時間去學習,所以很容易被用戶接受。所以,從操作可行性來看,該下載工具也是相當可行的。43業(yè)務流分析多線程下載工具的業(yè)務流程是用戶需要下載信息時,首先需要登錄下載系統(tǒng),然后在新建的任務列表中填寫與下載資源有,關的下載信息,例如資源的URL地址,資源的存儲路徑,以及下載任務所需的線程數(shù)等。填寫好信息時,軟件會自動發(fā)送HTTP協(xié)議請求,服務器收到下載請求后,會返回相應的相應消息。服務器確定下載消息的信息無誤后,就會啟動線程。從而將緩存中存儲的數(shù)據(jù)最終存儲到目的存儲路徑。除此之外,系統(tǒng)還可以完成一些基本操作,如停止、繼續(xù)、刪除任務等。以便用戶在下載資源時隨時掌控。5多線程下載工具的設計51整體設計隨著計算機的發(fā)展,人們獲取資源的途徑逐漸轉移到計算機,大部分人們都喜歡從網(wǎng)上尋找想要的信息。而且,人們對資源需求加大的同時,對下載的需求也增大。人們往往喜歡一次性把資源加入下載列表,這樣下載是花費的時間也不斷增加,用戶的需求不斷充斥著下載工具的下載效率和速度。而多線程下載技術,恰恰能夠有效的提高下載的速度。因為多線程下載技術最大的優(yōu)點就是能夠充分地利用調制解調器的數(shù)據(jù)傳輸能力,從而達到在最短的時間內將一個軟件下載過來的目的。筆者就是通過對比分析傳統(tǒng)的下載技術和多線程下載技術,分析多線程下載的特點,并研究和實現(xiàn)了JAVA多線程下載的開發(fā)。52模塊劃分本系統(tǒng)可以劃分為以下3大模塊1下載任務模塊對下載任務的URL資源進行定位,并開啟線程將資源輸出流寫入到本地計算機下載文檔中對應文件的固定位置。2線程啟動模塊對下載任務線程進行配置與啟動,相當于整個系統(tǒng)的總裝模塊,從用戶界面取得URL參數(shù),并對下載線程配置并啟動。3用戶界面模塊給用戶可視化的界面進行操作,使下載工具有一個較高的易用性,通過界面,用戶將URL路徑傳遞給程序,完成下載任務。用戶界面包含的內容有菜單欄、工具欄和下載信息欄。其界面親和力強,用戶易于操作,用戶容易掌握。用戶界面的功能圖見圖51所示。圖51用戶界面功能圖用戶在下載資源時,可以將任務分為以下幾部分開始時,要新建下載任務,開始下載任務,中途可以暫停下載任務,刪除下載任務,打開文件目錄,獲取下載源文件消息,判斷獲取的URL地址是否是有效的等功能。用戶界面按鈕工具條添加下載任務主窗口屬性面板53數(shù)據(jù)下載流程用戶調度多線程下載全部線程運行是否生成下載文件結束圖52多線程下載數(shù)據(jù)流程圖見圖52所示,描述了該下載工具的整個數(shù)據(jù)流程。用戶想要下載資料時,先要進入用戶下載界面,新建一個任務欄,然后將與所下載資料的信息填入任務欄,例如URL地址。然后下載工具的進程會想服務器發(fā)送HTTP報文請求,服務器收到請求后,會同時返回響應報文。如果用戶填入的地址是正確的,服務器確認后,就會啟動線程,下載資源。如果是不合法地址,下載將無法正常進行,用戶需要核對地址,輸入合法的URL。下載好的資源就會存儲到事先建立的文件夾。當整個過程完成后,下載就結束了。54關鍵技術1HTTPURLCONNECTIONHTTPURLCONNECT類通過HTTP協(xié)議發(fā)送請求道服務器,并取得服務器返回的RESPONSE。URLCONNECTION是個抽象類,它有兩個直接子類分別是HTTPURLCONNECTION和JARURLCONNECTION。每個HTTPURLCONNECTION實例生成單個請求,請求后在HTTPURLCONNECTION的輸入或輸出上調用CLOSE方法可以釋放網(wǎng)絡資源,但如果在調用DISCONNECT則可能關閉BASE套接字。本程序通過HTTPURLCONNECTION可通過SETREQUESTPROPERTY“RANGE“,“STARTPS“,“ENDPAS“可以從不同位置對WEB資源進行請求的特點,將資源分拆,并通過多線程技術,每個線程對資源的一部分進行下載,實習多線程下載。2RANDOMACCESSFILERANDOMACCESSFILE用來訪問文件,用SEEK方法來訪問文件位置,并進行讀寫。這些記錄的大小不必相同;但是其大小和位置必須是可知的。但是該類僅限于操作文件。RANDOMACCESSFILE不屬于INPUTSTREAM和OUTPUTSTREAM類系的,不使用INPUTSTREAM和OUTPUTSTREAM類中的方法;是一個完全獨立的類,所有方法從零開始寫??偠灾?,它是一個直接繼承于OBJECT的類。RANDOMACCESSFILE的工作方式是把DATAINPUTSTREAM和DATAOUTPUTSTREAM相結合,然后使用自己的方法,它不支持只寫文件。本程序利用其特性,將由HTTPURLCONNECTION的每一個線程所下載的資源作為一個文件的一部分,最終,當下載完成后,可以完好的保持資源的完整性。55基本操作基本操作是在程序中頻繁使用的一些操作,這些操作可能會被執(zhí)行幾十甚至幾百次,當這些操作被調用的時候,為了方便先做簡要說明。下載管理的主要操作有以下幾方面1SOCKET操作1創(chuàng)建一個SOCKET套接字;2綁定一個SOCKET套接字;3打開一個SOCKET套接字;4關閉一個SOCKET套接字;5通過SOCKET套接字發(fā)送數(shù)據(jù);6從SOCKET接收數(shù)據(jù)。2HTTP連接1創(chuàng)建一個HTTP連接;2打開一個HTTP連接;3關閉一個HTTP連接;4發(fā)送一個HTTP請求;5接受一個HTTP應答。3存儲遠程文件到本地設備1創(chuàng)建文件;2打開文件;3關閉文件;4管理多線程的同步請求。4下載管理1管理多線程的并行下載;2持續(xù)跟蹤下載處理中的每個線程。6多線程下載工具的實現(xiàn)61下載任務模塊1通過繼承THREAD實現(xiàn)線程,實現(xiàn)構造函數(shù)來初始化下載所需信息PUBLICCLASSDOWNTHREADEXTENDSTHREADPUBLICURLURLPUBLICHTTPURLCONNECTIONURLTPUBLICJLABELJLABELPUBLICLONGSTARTPSPUBLICLONGENDPASPUBLICFILEFILEPUBLICLONGTIMEPUBLICLONGTIM1PUBLICLONGTIM2PUBLICDOWNTHREADURLURL,LONGSTARTPS,LONGENDPAS,FILEFILE,JLABELLABELTHISURLURLTHISSTARTPSSTARTPSTHISENDPASENDPASTHISFILEFILETHISJLABELLABEL2重寫RUN()函數(shù),實現(xiàn)對URL資源的定位并取得輸入流PUBLICVOIDRUNTRYURLTHTTPURLCONNECTIONURLOPENCONNECTIONURLTSETREQUESTPROPERTY“RANGE“,“BYTES“STARTPS“ENDPASINPUTSTREAMBISURLTGETINPUTSTREAM3將取得的流寫入文檔對應文件固定位置中RANDOMACCESSFILEFOSNEWRANDOMACCESSFILEFILE,“RW“FOSSEEKSTARTPSINTI0INTPA0WHILEPAENDPASSTARTPSIFIBISREAD1FOSWRITEIPA1;CATCHEXCEPTIONEEPRINTSTACKTRACESYSTEMOUTPRINTLN“SUCCEED1“62線程啟動模塊1從用戶界面提取URL,得到URL信息,準備下載對應文件位置PUBLICVOIDPROCESSBTNADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTETRYSTRINGSTEXTGETTEXTURLURLNEWURLSURLCONNECTIONURLTURLOPENCONNECTIONINTLENGTHURLTGETCONTENTLENGTHLABEL1SETTEXT“總大小“LENGTH/1024“KB“INPUTSTREAMINPUTURLTGETINPUTSTREAMSTRINGSSSSPLIT“/“STRINGSS1SSSSLENGTH1FILEFILENEWFILE“D“FILESEPARATOR“DOWN“FILESEPARATORSS12開啟線程,進行下載DOWNTHREADDWNSNEWDOWNTHREAD10FORINTI0I10IDWNSINEWDOWNTHREADURL,ILENGTH/10,I1LENGTH/10,FILE,LABEL2DWNSISTARTCATCHEXCEPTIONE1E1PRINTSTACKTRACE63用戶界面模塊1通過繼承JFRAME實現(xiàn)PUBLICCLASSMYDOWNEXTENDSJFRAMEPRIVATEJLABELLABEL1,LABEL2,LABEL3PRIVATEJBUTTONBTNPRIVATEJTEXTFIELDTEXTPUBLICMYDOWNSTRINGSSETTITLESSETLAYOUTNEWFLOWLAYOUTSETSIZE500,85SETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSESETLOCATION100,100BTNNEWJBUTTON“確定“TEXTNEWJTEXTFIELD20LABEL1NEWJLABEL“總大小“ADDTEXTADDLABEL1ADDLABEL2ADDLABEL3ADDBTNPROCESSSETVISIBLETRUE64下載工具的實現(xiàn)1通過資源嗅探器找到資源對應URL圖61對應URL2打開下載程序,將URL復制到程序界面圖62URL下載界面3點擊確定,開始下載,等待5個線程全部下載完成圖63URL下載過程界面4打開文件夾,找到下載文件圖64URL下載結果界面7系統(tǒng)測試71系統(tǒng)測試環(huán)境711網(wǎng)絡環(huán)境對基于HTTP協(xié)議的多線程網(wǎng)絡下載系統(tǒng)運行測試,以證明系統(tǒng)的可用性和可行性。測試在網(wǎng)絡環(huán)境下運行,本測試環(huán)境搭建的是一個普通的局域網(wǎng)環(huán)境,通過ADSL連接INTERNET,同時,在網(wǎng)絡中有交換機。防火墻等網(wǎng)絡設備,在局域網(wǎng)中的一種一臺主機上,運行網(wǎng)絡下載系統(tǒng),下載遠程網(wǎng)絡中的某一資源。系統(tǒng)測試的網(wǎng)絡環(huán)境見圖71所示。執(zhí)行下載主機1下載主機主機2INTERNET圖71實驗環(huán)境配置圖交換機ADSL防火墻用戶712硬件環(huán)境作為測試,整個測試系統(tǒng)還需要設定相應的硬件及網(wǎng)絡性能的配置信息,測試網(wǎng)絡下載系統(tǒng)的硬件配置環(huán)境如表1所示表71網(wǎng)絡下載系統(tǒng)測試的軟硬件環(huán)境下載主機硬件配置名稱性能參數(shù)CPU233GHZ2(或以上)內存20GB硬盤大于所下載文件的容量即可網(wǎng)絡配置正常連接INTERNET即可軟件環(huán)境名稱版本JRE60理論上講,本下載系統(tǒng)只需在聯(lián)網(wǎng)的條件下就可以運行,對主機性能沒有特殊要求,因為系統(tǒng)是基于JAVA語言開發(fā)而成的,所以在系統(tǒng)運行的主機上,還需要安裝JAVA虛擬機。72軟硬件配置各種配置設定完后,測試環(huán)境搭建好后,就可以進行系統(tǒng)測試。當用戶在下載主機上輸入要下載的資源URL信息,然后啟動下載系統(tǒng)。下載系統(tǒng)啟動后,會根據(jù)URL信息去連接資源所在的主機,接著跟主機通信,確定資源文件的大小,然后啟動多線程同時訪問遠程資源,并通過HTTP協(xié)議將資源文件傳輸?shù)奖镜?。對傳輸?shù)奖镜氐亩鄠€分片數(shù)據(jù),通過文件的寫操作將文件的分片數(shù)據(jù)重構為原始的文件,最后將文件存儲到本地。這樣就將遠程資源從服務器一端傳輸?shù)娇蛻魴C一端,完成了一次網(wǎng)絡下載活動。在完成一次下載活動的整個過程中,對系統(tǒng)的性能、指標、設計參數(shù)等進行測試,測試結果如下721測試程序的啟動下載系統(tǒng)部署到主機上后,直接點擊程序啟動按鈕,就可以運行下載系統(tǒng)。網(wǎng)絡下載系統(tǒng)開始運行后,整個運行及展示的界面如圖72所示。圖72用戶界面圖72所示的是系統(tǒng)運行的主界面,也就是系統(tǒng)設計中所說的用戶用來操作和管理整個下載過程的統(tǒng)一接口。在菜單欄中,是控制下載的命令按鍵,主界面顯示了所有下載的文件、下載的速度和瞬時下載速度。722測試新建下載任務在操作菜單中,單擊“新建下載”,就會彈出新建下載的設置界面,見圖73所示。圖73新建下載任務在新建下載任務過程中,需要手動添加需要下載文件的URL信息,系統(tǒng)會將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安防系統(tǒng)安裝合同
- 住宅質量保證書范本范文3篇
- 住宅質量保證書要點解讀3篇
- 工廠承包合同書3篇
- 云平臺項目管理服務合同2篇
- 碳酸鋇在工業(yè)中的應用考核試卷
- 石棉制品在消防裝備中的應用考核試卷
- 縫制機械加工表面質量考核試卷
- 漆器在國際交流中的角色考核試卷
- 2025標準版購房合同范本
- 2024年3月ITSMS信息技術服務管理體系基礎(真題卷)
- 節(jié)能評審和節(jié)能評估文件編制費用收費標準
- 2023-2024年《勞務勞動合同樣本范本書電子版模板》
- 中國居民口腔健康狀況第四次中國口腔健康流行病學調查報告
- MOOC 數(shù)據(jù)挖掘-國防科技大學 中國大學慕課答案
- 中藥注射劑合理使用培訓
- 第13課+清前中期的興盛與危機【中職專用】《中國歷史》(高教版2023基礎模塊)
- 2024年國家糧食和物資儲備局直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 蘇軾臨江仙課件大學語文完美版
- 《施工測量》課件
- 情緒健康管理服務規(guī)范
評論
0/150
提交評論