簡單多線程下載工具的設計與實現(xiàn)

簡單多線程下載工具的設計與實現(xiàn)

ID:33519350

大小:574.00 KB

頁數(shù):19頁

時間:2019-02-26

簡單多線程下載工具的設計與實現(xiàn)_第1頁
簡單多線程下載工具的設計與實現(xiàn)_第2頁
簡單多線程下載工具的設計與實現(xiàn)_第3頁
簡單多線程下載工具的設計與實現(xiàn)_第4頁
簡單多線程下載工具的設計與實現(xiàn)_第5頁
資源描述:

《簡單多線程下載工具的設計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、多線程下載工具的設計2.3可行性分析可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程。它的目的不是解決問題,而是確定問題是否值得去解決。2.3.1技術可行性分析通過根據(jù)軟件的需求,對本設計的技術實現(xiàn)進行全面的了解,可以采用java的多線程機制,通過設置HTTP1.1的請求頭信息,可以實現(xiàn)連接遠程資源的指定偏移位置,通過這個特性我們就可以實現(xiàn)多線程及斷點續(xù)傳的功能。所以根據(jù)目前已知的技術,在技術上實現(xiàn)多線程下載沒有問題。2.3.2經(jīng)濟可行性分析從開發(fā)這個簡單多線程的意義上我們可以看出,贏利不是制

2、作這個下載工具的目的,而只是為了單純的探索多線程下載的基本原理,綜合運用所學的知識,提高自己的動手能力,及查閱資料繼續(xù)學習的能力。所以它也就不存在經(jīng)濟的問題。而從它的意義上來說,絕對值得制作這個下載工具。2.3.3操作可行性分析由于這個多線程下載工具所面向的是廣大的互聯(lián)網(wǎng)用戶,所以在設計中采用簡潔的GUI界面。也因為簡潔的界面設計使得系統(tǒng)在操作方式上很容易讓用戶接受。在操作上對一沒有計算機操作經(jīng)驗的人來說也不會有難度,因此在操作上也是行得通的。3.概要設計3.1系統(tǒng)結構圖本系統(tǒng)采用現(xiàn)今比較流行的三層結構進行系統(tǒng)分層,這三層分別為GUI表現(xiàn)層,控制層,底層下載操作,文件

3、及網(wǎng)絡操作,系統(tǒng)的結構圖如圖3-1圖3-1系統(tǒng)結構圖3.2功能流程圖新建下載及恢復下載功能流程圖見圖3-2,在這里新建任務與恢復任務僅是在任務的構建方式上不一樣,在網(wǎng)絡操作及下載操作上都沒有什么區(qū)別,這樣的實現(xiàn)主要得益于對代碼重用性的設計。圖3-2新建/恢復任務流程圖暫停與停止的功能實現(xiàn)流程圖見圖3-3,從這個圖中我們可以發(fā)現(xiàn)和新建任務,恢復任務一樣具備同樣的代碼利用,停止線程過程是同一個,他們兩個在功能上不同僅是暫停任務時我們需要將暫停的斷點記錄下來,而停止任務卻是將斷點記錄給刪除,并刪除已下載的部分文件信息。圖3-3暫停/停止任務流程圖4.詳細設計4.1獲取網(wǎng)絡資

4、源獲取網(wǎng)絡資源是下載過程中的第一個步驟,也是很關鍵的一步。由于網(wǎng)絡的問題是多變的,有可能指定的下載資源已經(jīng)不存在,或者網(wǎng)絡連接有問題,等一系列的問題,因些在連接資源過程中我們得對于相應的連接進行相應在測試,它是否可行,它的信息是否是我們想要的,這一節(jié)主要就是討論這個功能。4.1.1功能說明要下載一個遠程的資源就需我們能夠先定位到指定的資源,并建立連接。在本模塊中實現(xiàn)的基本功能說是與遠程的資源進行連接,并測試其連接狀態(tài)。4.1.2設計說明在做這個模塊之前我們得先來了解下HTTP協(xié)議。HTTP協(xié)議就是超文件傳輸協(xié)議,采用了請求/響應模型。客戶端向服務器發(fā)送一個請求,請求頭

5、包含請求的方法、URI、協(xié)議版本、以及包含請求修飾符、客戶信息和內(nèi)容的類似于MIME的消息結構。服務器以一個狀態(tài)行作為響應,相應的內(nèi)容包括消息協(xié)議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內(nèi)容。1、連接資源通過JDK的net包中包含的URL及HttpURLConnection兩個類對網(wǎng)上資源進行操作。URL指定網(wǎng)絡資源的位置,而HttpURLConnection中則封裝了操作指定網(wǎng)絡資源的方法。在本系統(tǒng)中我設計了類ConnectionManager,它的主要功能就是通過提供指定的URL獲取HttpURLConnection對象,為控制層代碼利

6、用HttpURLConnection對象操作網(wǎng)絡文件提供支持??刂茖哟a只要調(diào)用ConnectionManager.getConnection(URL)即可。2、測試連接在網(wǎng)絡連接過程中可能出現(xiàn)各種各樣的問題,而我們需要的只是連接成功的正確網(wǎng)絡資源,所以我們有必要對通過ConnectionManager獲取的與服務器的連接進行測試。如果測試成功,即能正確獲取到指定的資源,包括獲取是否支持斷點續(xù)傳的功能,之后我們才對指定的資源進行下載操作,否則拋棄信息,并對用戶進行相應的提示。通過對HTTP1.1協(xié)議的了解,我們知道只要我們發(fā)送一個指定的請求頭信息,服務器就會返回一個攜

7、帶著請求后服務器處理完成的信息,這個信息就包括請求是否成功等。我們要做的就是構造這樣一個帶有指定的請求的頭信息發(fā)送到服務器端,然后查看它返回的響應碼,因為我們完成可能從響應碼中去了解一個請求是否成功。要設計一個什么樣的請求頭才能符合我們的要求的測試效果呢?通過設計請求頭信息中的RANGE字段我們可以指定請求URL指向目標資源的偏移量,而不是從頭開始讀。這個也是斷點及多線程下載資源的一個重要屬性,我們將在后面作更詳細說明。如果我們設置完這個頭信息并發(fā)送到服務器端,如果源請求的資源存在并且服務器支持斷點續(xù)傳,這時它返回的響應碼信息就是206,如果存在但不

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。