【正文】
基于 Java 的 HTTP 斷點續(xù)傳 的設(shè)計與實現(xiàn) 【 摘 要 】 隨著計算機技術(shù)的發(fā)展 和 網(wǎng)絡(luò)的擴大 , 現(xiàn)在人們下載的需求也越來越大,希望坐在電腦面前點一點鼠標(biāo)就可以完成下載,但是目前的下載軟件往往差強人意,要么下載速度過慢,要么就是在遇到突發(fā)性情況(如停電或 網(wǎng)絡(luò)斷開鏈接 ),使得下載不得不從新開始,讓人們頭痛不已 。 Java 語言的一大特性就是內(nèi)置對多線程的支持。多線程是指同時存在幾個執(zhí)行體,按幾條不同的執(zhí)行線索共同工作的情況,它使得編程人員可以很方便地開發(fā)出具有多線程功能、能同時處理多個任務(wù)的功能強大的應(yīng)用程序。一些同時 運行的線程需要共享數(shù)據(jù),因此每個線程就必須要考慮其它與它一起共享數(shù)據(jù)的線程的狀態(tài)與行為,這就是線程安全的問題。 為了對 Java 多線程與線程安全機制進(jìn)行研究與實踐 以及對 HTTP 協(xié)議的研究 ,特此設(shè)計一個基于 HTTP 協(xié)議的支持多線程斷點續(xù)傳的下載程序。此下載程序由下載任務(wù)模塊、設(shè)置模塊以及系統(tǒng)幫助模塊組成。 【 關(guān)鍵字 】 斷點續(xù)傳 java 多線程機制 資源下載 Based on Java HTTP breakpoint continuingly design and implementation 【 Abstract 】 With the development of puter technology and expansion of work, demand for download is increasing now, people hope that the download pleted by clicked the mouse sitting in front of the puter , but download software is often unsatisfactory for now, or downloads too slowly, or suffer the sudden circumstances (power failure or work disconnect), the task for download have to start afresh, make people worried. In real world, many processes have the characteristic that multistrip clue act at the same time. The Java language has a major characteristic of embedded multithread support. Multithreading is the status that exist several implementation body at the same time, according to several different clues to the implementation of the joint work, It means that programmers can easily produce more threads development functions, It can also deal with a number of tasks powerful application. Running some of the threads need to share data, So each thread must consider other with it to share the data with the state of the thread, This is the thread safety. To Java multithreading and security mechanisms to conduct research and practice, Design hereby Http agreement on the support multithreading download procedures. This download procedures prises of downloading task module, setting module and helping system module. 【 Keywords】 Broken/Resume Multithreading Resources Download 目 錄 1. 緒論 ..................................................................... 1 課題背景 .............................................................. 1 課題意義 .............................................................. 1 課題現(xiàn)狀 .............................................................. 1 2. 開發(fā)工具及關(guān)鍵技術(shù) ....................................................... 2 開發(fā)工具 .............................................................. 2 開發(fā)語言 .......................................................... 2 開發(fā)工具 .......................................................... 2 關(guān)鍵技術(shù) .............................................................. 3 JAVA 多線程機制 .................................................... 3 HTTP 協(xié)議簡介 ..................................................... 3 3. 系統(tǒng)分析 ................................................................. 5 需求分析 .............................................................. 5 業(yè)務(wù)流程分析 .......................................................... 5 系統(tǒng)功能概述 ...................................................... 5 系統(tǒng) UML 活動圖 .................................................... 7 4. 程序原理分析及構(gòu)架 ....................................................... 8 程序整體構(gòu)架 .......................................................... 8 程序設(shè)計原理分析 ..................................................... 11 軟件模塊設(shè)計 ......................................................... 12 功能設(shè)計 ......................................................... 12 功能模塊設(shè)計 ..................................................... 12 5. 系統(tǒng)設(shè)計與實現(xiàn) .......................................................... 14 多線程任務(wù)下載設(shè)計 ................................................... 14 任務(wù)啟動線程設(shè)計 ................................................. 14 任務(wù)下載線程設(shè)計 ................................................. 17 任務(wù)線程管理設(shè)計 ................................................. 18 任務(wù)暫停 功能設(shè)計 ..................................................... 19 線程暫停 ......................................................... 19 讀取文件設(shè)計 ..................................................... 20 下載任務(wù)管理設(shè)計 ..................................................... 21 整體任務(wù)管理設(shè)計 ................................................. 21 下載任務(wù)刪除 ..................................................... 23 系統(tǒng)實現(xiàn) ............................................................. 23 系統(tǒng)主界面 ....................................................... 23 新建下載任務(wù)界面 ................................................. 24 下載中的界面 ..................................................... 25 6. 結(jié)論 ................................................................... 27 參考文獻(xiàn) ................................................................... 28 附錄 1 ..................................................................... 29 附錄 2 ..................................................................... 45 致謝 ........................................................ 錯誤 !未定義書簽。 1 1. 緒 論 課題背景 隨著 Inter的發(fā)展,進(jìn)入信息時代后快速獲得網(wǎng)絡(luò)共享資源成為很簡單的事情,人們對互聯(lián)網(wǎng)也有了很大的依賴性。人們甚至希望只輕松點擊鼠標(biāo)就可以得到自己想要的東西。比如,針對一些專業(yè)的論壇提供了很多相關(guān)資料以方便人們閱讀或了解;還有更多的人希望能過下載到他們喜歡聽得音樂、好看的圖片、喜歡的電影等 等。也可以看出人們在上網(wǎng)時再也不單是打開瀏覽器來瀏覽網(wǎng)頁,越來越多的人們開始使用下載軟件來獲取資源。同時人們也更希望使用更新更快的下載軟件。 由于用戶下載需求的增大,也要求下載軟件能夠迅速完成對資源的下載。多線程程序設(shè)計可以很好的解決程序并發(fā)的問題。最恰當(dāng)?shù)谋扔骶褪怯脩魰械?CPU似乎同時出現(xiàn)在兩個地方,在下載軟件中應(yīng)用多線程技術(shù)可以理解為將一個下載任務(wù)分成若干份來完成,其中的并發(fā)控制將使下載的效率大大提高。 課題意義 由于下載資源是一個過程,當(dāng)中用到的時間可能會很長。那么在很長的這段時間中很有可 能會出現(xiàn)很多的意外情況使下載中斷或是停止,比如電源意外被切斷、網(wǎng)絡(luò)中斷、或是操作系統(tǒng)故障導(dǎo)致系統(tǒng)重新啟動。這些原因都會導(dǎo)致下載的中斷,但是當(dāng)用戶重新下載資源時發(fā)現(xiàn)原來下載的數(shù)據(jù)已經(jīng)消失你還是要回頭再來。斷點續(xù)傳就是用來解決這樣的問題的,它的任務(wù)是在下載任務(wù)停止時,記錄當(dāng)前下載的信息并且利用網(wǎng)絡(luò)協(xié)議中的一些重定向機制繼續(xù)完成下載任務(wù)而不必從頭再來。 隨著使用下載工具的時間的增長,用戶下載的資源越來越多,因此在下載列表中的項目也越來越多,越來越混亂,因此為了便于管理和用戶使用方便,用戶迫切希望下載工具具有下載文 件分類的功能。 在下載任務(wù)的管理這一塊,用戶不僅希望下載工具具有下載一個一個資源的功能,而且具有批量下載有些相似的或有關(guān)聯(lián)的資源的功能。還有些特殊情況下,用戶在下載任務(wù)開始后由于種種原因希望放棄資源的下載,這就要求下載工具具有刪除任務(wù)的功能了。 為了對下載任務(wù)進(jìn)行掌控,用戶往往具有設(shè)置下載任務(wù)的線程數(shù),文件下載網(wǎng)址,文件下載存儲目錄和在下載過程中對下載任務(wù)的狀態(tài)進(jìn)行監(jiān)控等功能需求。 課