【畢業(yè)學位論文】(Word原稿)多線程下載軟件的設計與實現(xiàn)-軟件工程_第1頁
【畢業(yè)學位論文】(Word原稿)多線程下載軟件的設計與實現(xiàn)-軟件工程_第2頁
【畢業(yè)學位論文】(Word原稿)多線程下載軟件的設計與實現(xiàn)-軟件工程_第3頁
【畢業(yè)學位論文】(Word原稿)多線程下載軟件的設計與實現(xiàn)-軟件工程_第4頁
【畢業(yè)學位論文】(Word原稿)多線程下載軟件的設計與實現(xiàn)-軟件工程_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

碩士學位論文 (專業(yè)學位) 多線程下載軟件的設計與實現(xiàn) 姓 名: 張君 學 號: 1021170030 所在院系:軟件學院 職業(yè)類型:工程碩士 專業(yè)領域:軟件工程 指導教師:張惠娟 副指導教師: 韓雪 二 一二 年九月 A in 1021170030 2012 多線程下載軟件的設計與實現(xiàn) 張君 同濟大學 學位論文版權使用授權書 本人完全了解同濟大學關于收集、保存、使用學位論文的規(guī)定,同意如下各項內容:按照學校要求提交學位論文的印刷本和電子版本;學校有權保存學位論文的印刷本和電子版,并采用影印、縮印、掃描、數(shù)字化或其它手段保存論文;學校有權提供目錄檢索以及提供本學位論文全文或者部分的閱覽服務;學校有權按有關規(guī)定向國家有關部門或者機構送交論文的復印件和電子版;在不以贏利為目的的前提下,學??梢赃m當復制論文的部分或全部內容用于學術活動。 學位論文作者簽名: 年 月 日 同濟大學學位論文原創(chuàng)性聲明 本人鄭重聲明:所呈交的學位論文,是本人在導師指導下,進行研究工作所取得的成果。除文中已經注明引用的內容外,本學位論文的研究成果不包含任何他人創(chuàng)作的、已公開發(fā)表或者沒有公開發(fā)表的作品的內容。對本論文所涉及的研究工作做出貢獻的其他個人和集體,均已在文中以明確方式標明。本學位論文原創(chuàng)性聲明的法律責任由本人承擔。 學位論文作者簽名: 年 月 日 同濟大學 碩士學位論文 摘要 I 摘 要 隨著網(wǎng)絡技術的普及與飛速發(fā)展,網(wǎng)絡資源的日益豐富,下載工具已逐漸成為網(wǎng)絡應用中不可或缺的一部分。各種下載軟件通過解析不同的網(wǎng)絡傳輸協(xié)議,采用不同的方式進行文件的傳輸與下載。但同時也存在很多常見問題,如多用戶多線程同時下載,斷點的記錄及續(xù)傳,如何更大效率利用網(wǎng)絡帶寬等等。本論文在對以往的下載工具進行一定研究的基礎上,設計并實 現(xiàn)了此款多線程下載軟件,支持多任務 多線程在線同時下載,支持斷點記錄和續(xù)傳,更有效利用帶寬的優(yōu)勢,同時還能記錄用戶的下載歷史并給予 相應 推薦等等。 本論文針對 多線程 下載軟件的用戶需求提出了系統(tǒng)分析和開發(fā)流程,并給出了實現(xiàn)框架。論文首先對背景知識和核心技術進行了詳細的闡述,包括 C+,議分析及 據(jù)庫訪問和使用的相關知識。然后對軟件進行了系統(tǒng)分析、功能 分析。 使用了多線程編程機制, 據(jù)庫訪問,網(wǎng)絡編程, 程技術等等。 而 后針對軟件的兩大模塊,多線程用戶下載模塊和后臺數(shù)據(jù) 庫模塊進行了架構分析 ,完成 了兩個模塊的實現(xiàn)與整合。 最終實現(xiàn)了一款多任務多線程,支持斷點續(xù)傳,高效利用帶寬資源,用戶友好的下載軟件。 該系統(tǒng)使用先進成熟的編程技術,提高了系統(tǒng)資源的使用率,同時貫徹方便用戶、系統(tǒng)穩(wěn)定,高效快速的原則,整個系統(tǒng)設計合理,操作便捷,易于維護,穩(wěn)定高效,并且有良好的用戶體驗。 最后由于整個系統(tǒng)提供了統(tǒng)一的調用接口,大大提高了所開發(fā)系統(tǒng)的擴展性和可維護性,對其它應用系統(tǒng)也具有一定參考意義 。 關鍵詞: 線程,斷點續(xù)傳,同步 I he of an of in as or to to of so a on of at It of of to on of on it in + +, DO it so it of of it a to of Its Its to to it a of It 濟大學 碩士學位論文 目錄 錄 第一章 緒論 . 1 究背景 . 1 究意義 . 2 究現(xiàn)狀 . 2 究目標及內容 . 3 文 組織結構 . 4 第二章 相關技術 . 5 議 . 5 議概念 . 5 求方式 . 6 議頭部信息 . 7 線程 . 9 程的概念 . 9 線程的概念 . 9 程同步 . 10 線程死鎖 . 12 . 12 展歷史 . 13 . 13 第三章 系統(tǒng)需求分析 . 14 統(tǒng)總體需求 . 14 能需求 . 16 體功能框架 . 16 線程下載 . 17 點續(xù)傳 . 19 據(jù)庫記錄 . 20 戶管理下載任務 . 21 持 動下載 . 21 同濟大學 碩士學位論文 目錄 統(tǒng)功能建模 . 22 能需求 . 22 第四章 系統(tǒng)設計 . 25 統(tǒng)架構設計 . 25 統(tǒng)數(shù)據(jù)庫設計 . 27 線程下載模塊設計 . 27 作原理及工作流程 . 28 程圖介紹 . 31 要函數(shù)介紹 . 34 要屬性介紹 . 36 戶事件處理 . 38 據(jù)庫管理模塊設計 . 39 程介紹 . 39 出類的方法說明 . 41 出類的屬性說明 . 42 戶事件處理 . 43 第五章 多線程下載軟件的實現(xiàn) . 44 發(fā)環(huán)境 . 44 線程下載模塊的實現(xiàn) . 45 . 45 線程下載的實現(xiàn) . 47 點續(xù)傳的實現(xiàn) . 49 戶下載歷史操作的實現(xiàn) . 50 持 動下載的實現(xiàn) . 51 據(jù)庫管理模塊的實現(xiàn) . 52 . 52 據(jù)庫記錄功能的實現(xiàn) . 53 第六章 總結與展望 . 56 結 . 56 望 . 57 同濟大學 碩士學位論文 目錄 V 參考文獻 . 58 致 謝 . 60 第一章 緒論 1 第一章 緒論 本章將首先介紹該課題的研究背景,以及當前國內外關于此課題的研究成果及問題。 然后基于研究背景和目前的研究現(xiàn)狀,提出該課題的研究意義和研究內容,并列出本論文的組織安排。 究背景 在當今的網(wǎng)絡時代,下載軟件是使用最為頻繁的軟件之一。幾年來,下載技術也在不停地發(fā)展。最原始的下載功能僅僅是個“下載”過程,即從 傳統(tǒng)的下載方式存在三個問題:第一個問題,由于網(wǎng)絡的不穩(wěn)定性,一旦連接斷開使得下載過程中斷,就 需要從文件開始后再次下載 。第二個問題,隨著現(xiàn)在的網(wǎng)絡資源越來越豐富,個人電腦硬件配置的提升,很多網(wǎng)絡資源的體積都非常龐大,比如高清電影,高清電視劇,大型 3致不能在短時間內一次性下載完畢,需要分幾次下載。第三個問題,雖然網(wǎng)絡帶寬逐漸提 高,但下載速度很少能夠達到理論最高值,有很大一部分帶寬都被浪費 。 由此,多線程下載和斷點續(xù)傳的概念出現(xiàn)了。所謂多線程下載,可以在客戶端通過多個線程同時進行下載。在中國,最早流行的多線程下載軟件是“網(wǎng)絡螞蟻”,在“網(wǎng)絡螞蟻”軟件流行開后,許多下載軟件也都紛紛效仿,是否應用“多線程下載”技術甚至能支持多少個下載線程都成了人們評測下載軟件的要素?!岸嗑€程下載”的基礎是 即支持“斷點續(xù)傳”。這樣, 在下載時可以把文件分成若干部分,每一部分創(chuàng)建一個下載線程進行下載。 在網(wǎng)絡環(huán)境下,使用多線程技術實現(xiàn)下載,可以提高 率和帶寬的利用率,從而提高下載速度。為了避免網(wǎng)絡不穩(wěn)定而造成的下載中斷后的重傳,引入斷點續(xù)傳機制,可提高下載的效率。 多線程斷點續(xù)傳 技術,自從興起以后受 到了越來越多的關注,人們也在用自己的方法使這門技術不斷完善,該 技術融合了多線程的知識,計算機網(wǎng)絡的知識(主要是與套接字相關的內容),同步異步的知識等等。在對這些知識的綜合運用中,程序員 可以編寫出令用戶滿意的下載軟件 。 在現(xiàn)在的軟件中,很多 地方需要下載模塊,如軟件本身自動更新,如更新大量數(shù)據(jù)等。本文介紹了基于 給出了一個多線程下載同濟大學 碩士學位論文 多線程下載軟 件的設計與實現(xiàn) 2 工具的實現(xiàn)過程。 很多下載軟件都支持下載歷史記錄查看的功能,數(shù)據(jù)庫功能的引入使下載工具的更能更加完善,更加實用。在當今的數(shù)據(jù)庫技術中,有一門稱作為 技術受到了人們的歡迎,逐漸淘汰了原來的 術, 術可以更方便地操作數(shù)據(jù)庫,存取數(shù)據(jù)也更加方便,快捷, 這個項目中就利用了 現(xiàn)了下載歷史記錄查看的功能 。 究意義 基于前一節(jié) 所介紹 的研究背景,本節(jié)將 提出本課題的研究意義。 本課題將要設計并實現(xiàn)基于 圖將該技術成熟化,產品化,文檔化,必將推廣多線程下載在各類應用中的使用。 (1) 多線程下載技術。此點為本課題的重點技術。多線程的使用無疑能夠增加下載的效率和易用性,使下載更加方便,便捷和快速。但是多線程的問題也就浮現(xiàn)了出來,由于線程運行的不確定性,所以經常會導致一些敏感數(shù)據(jù)的錯誤。這個課題在一定程度上是熟悉多線程編程以及多線程環(huán)境下的調試和多線程中比較關鍵的同步問題 。 (2) 通過數(shù)據(jù)庫對系統(tǒng)信息 進行管理。在該系統(tǒng)中,使用 術連接數(shù)據(jù)庫,對下載信息,用戶記錄等等進行數(shù)據(jù)管理 。 (3) 封裝系統(tǒng)模塊。本課題采用動態(tài)鏈接庫的技術對核心功能進行模塊化封裝,提供出統(tǒng)一的借口,使得該功能在 于 二次開發(fā) 。 究現(xiàn)狀 研究現(xiàn)狀最開始的下載就是簡單的建立一個從瀏覽器到服務器的鏈接,然后用戶一直等待直到下載過程結束。久而久之,這種下載方式帶來了很多問題,如果下載文件過大,突然斷網(wǎng)之后,用戶必須重新下載;并且下載的網(wǎng)速受到很大的限制,尤其在上網(wǎng)高峰階段 。 為了解決這個 問題,洪以容先生的“網(wǎng)絡螞蟻”橫空出世,并且在短時間內受到全國網(wǎng)友的追捧,“網(wǎng)絡螞蟻”首先采用了多線程下載技術,下載一個任務的時候,幾個線程一起下載,這樣既能充分利用網(wǎng)絡資源,也能增加下載速率,而且斷點續(xù)傳技術的應用也大第一章 緒論 3 大地提高了“網(wǎng)絡螞蟻”的實用性,用戶不再煩惱下載過程中突然網(wǎng)絡斷開這類的事故。但是,這門技術興起以后,也受到了一些質疑,從本質上說“網(wǎng)絡螞蟻”只是飲鴆止渴而已,它并沒有根本解決帶寬低所帶來的問題,可是卻起到了拋磚引玉的作用,自此之后,各種各樣下載技術的革新與突破的出現(xiàn)就如雨后春筍一樣。這門技 術自從 1998年問世以來,得到了廣泛的應用,成為越來越多下載軟件的核心技術,例如:網(wǎng)際快車,迅雷,超級旋風等等。而且,這門技術也逐漸成為各類應用軟件重要的附加功能 。 如今,多線程下載已經不僅僅局限于下載工具,很多軟件本身都需要下載功能。如軟件自身的更新,尤其是很多網(wǎng)絡應用的客戶端,代表之一便是網(wǎng)絡游戲。網(wǎng)絡游戲大多是3D 畫面,數(shù)據(jù)量非常大,經常需要更新很多文件,在這種情況下,多線程下載顯得尤為重要。還有就是很多軟件的本地數(shù)據(jù),比如手機上的離線地圖數(shù)據(jù),經常需要更新,數(shù)據(jù)量也很大。但現(xiàn)在相關的下載軟件或者下載 模塊都還是采取的單線程傳統(tǒng)下載方式,經常用戶在斷網(wǎng)后,下次只能采取從頭下載,耗時耗力,用戶體驗很差 。 究目標及內容 基于對當前多線程下載的現(xiàn)狀和未來發(fā)展的分析,本課題將深入多線程下載解決方案中的技術關鍵,設計并實現(xiàn)基于 建系統(tǒng)原型,并進行測試與分析。 本課題的重要研究內容包括: (1) 深入研究了多線程技術,分析了該技術的現(xiàn)狀以及發(fā)展趨勢。 (2) 設計并實現(xiàn)了基于 進行分析與測試。 (3) 實現(xiàn)了 (3) 實現(xiàn) 了動態(tài)連接庫對模塊進行封裝,并提供相對標準的接口。 本課題具有以下目標: (1) 本課題將深入分析多線程下載結局方案中的技術關鍵,設計并實現(xiàn)支持多線程和斷點續(xù)傳的下載模塊,構建系統(tǒng)原型,并進行測試與分析比對。 (2) 本課題是基于 議的多線程斷點續(xù)傳下載工具。針對目前市場上已有系統(tǒng)存在的各種問題,本文分析了客戶的需求及多種用戶體驗,開發(fā)出更符合市場趨勢和用戶喜好的產品。 (3) 封裝該軟件模塊,提供統(tǒng)一接口,以便于系統(tǒng)移植和二次開發(fā)。 同濟大學 碩士學位論文 多線程下載軟 件的設計與實現(xiàn) 4 文組織結構 本論文將以以下幾個章節(jié)組成: 第一章 緒論。 簡述課題的研究背景,提出了課題的研究目標,由此給出本文的研究范圍,并簡單介紹了本文的組織結構。 第二章 系統(tǒng)相關背景介紹。本章介紹了相關一些技術背景,為下文使用相關技術提供良好的背景基礎。首先介紹了 括 議的概念,請求信息,請求方式等。然后介紹了多線程,包括相關概念,線程同步。然后介紹了本課題需要使用的 后介紹了 第三章 對課題 的需求分析。本章介紹了該課題的需求,包括功能需求、性能需求。 第四章 先從架構角度對系統(tǒng)進行分析,然后 針對本課題兩 個重要的模塊,多線程用戶下載模塊和后臺 據(jù)庫模塊,分別進行了相關分析。 包括相關流程圖,函數(shù)接口等詳細設計。 第五章 針對本課題兩個重要的模塊,多線程用戶下載模塊和后臺 據(jù)庫模塊,進行了相關實現(xiàn),包括類的定義,關鍵代碼介紹,以及最終效果圖 。 第六章 結論與展望。本章進行了總結和展望。第二章 相關技術 5 第二章 相關技術 第 一章主要介紹了本課題的研究背景,國內外相關軟件的研究現(xiàn)狀,提出了本課題的研究意義,主要研究內容。 本章將對系統(tǒng)設計和實現(xiàn)中所使用的開發(fā)技術和開發(fā)工具進行整體的介紹,這些技術和工具的選擇,遵循了成 熟性、靈活性、通用性、安全性的原則,下面就對擬使用的信息技術一一進行介紹。 將 本課題所開發(fā)的多線程下載軟件應用到的核心技術包括:計算機網(wǎng)絡, 線程編程, 態(tài)鏈接庫等等。對這些知識和概念的了解對理解本文及后續(xù)工作都是必要的。本章將對這些背景知識進行詳細分析,介紹其基本原理,為下文做好準備 。 議 超文本傳輸協(xié)定( 互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議。所有的 件都必 須遵守這個標準。設計 初的目的是為了提供一種發(fā)布和接收 面的方法。 議概念 作的結果, 他們最終發(fā)布了一系列的 中最著名的就是616。 616定義了 一個客戶端和服務器端請求和應答的標準( 客戶端 是終端用戶,服務器端是網(wǎng)站。通過使用 覽器、網(wǎng)絡爬蟲或者其它的工具,客戶端發(fā)起一個到服務器上指定端口(默認端口為 80)的 求。 稱這個客戶端為用戶代理( 應答的服務器上存儲著一些資源,比如 稱這個應答服務器為源服務器( 在用戶代理和源服務器中間可能存在多個中間層,比如代理,網(wǎng)關,或者隧道( 盡管 P 協(xié)議是互聯(lián)網(wǎng)上最流行的應用, 議并沒有規(guī)定必須使用它和基于它支持的層。事實上, 網(wǎng)協(xié)議上,或者在其他網(wǎng)絡上實現(xiàn)。何能夠提供這種保證的協(xié)議都可以被其使用。 同濟大學 碩士學位論文 多線程下載軟 件的設計與實現(xiàn) 6 通常,由 立一個到服務器指定端口(默認是 80端口)的接。 務器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服務器向客戶端發(fā)回一個狀態(tài)行,比如“ 00 和響應的消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。 用 不是 原因在于打開一個網(wǎng)頁必須傳送很多數(shù)據(jù),而 議提供傳輸控 制,按順序組織數(shù)據(jù),和錯誤糾正。 通過 者 議請求的資源由統(tǒng)一資源標識符( 標識 。 求方式 議中共定義了八種方法(有時也叫“動作”)來表明 定的資源的不同操作方式: 回服務器針對特定資源所支持的 求方法。也可以利用向 務器發(fā)送 *的請求來測試服務器的功能性。 服務器索要與 求相一致的響應,只不過響應體將不會被返回。這一 方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。 特定的資源發(fā)出請求。注意: 法不應當被用于產生“副作用”的操作中,例如在 中一個原因是 能會被網(wǎng)絡蜘蛛等隨意訪問。 指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。 求可能會導致新的資源的建立和 /或已有資源的修改。 指定資源位置上傳其最新內容。 求服務器刪除 標識的資源。 顯服務器收到的請求,主要用于測試或診斷。 議中預留給能夠將連接改為管道方式的代理服務器。 方法名稱是區(qū)分大小寫的。當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態(tài)碼 405( 當服務器不認識或者不支持對應的請求方法的時候,應當返回狀態(tài)碼 501( 務器至少應該實現(xiàn) 法,其他方法都是可選的。當然,所有的方法支持的實現(xiàn)都應當符合下述的方法各自的語義定義 。此外,除了上述方法,特定的 相關技術 7 服務器還能夠擴展自定義的方法 。 議頭部信息 議頭部信息 部協(xié)議包含著請求信息與響應信息,從服務器下載文件時應該先解析頭部信息,從而確定下載對象的大小,是否支持多線程等等。所以,先了解 例如: 求信息頭部: 圖 求信息頭部 現(xiàn)在,針對 議請求信息頭部進行解析: 定義客戶端可以處理的媒體類型,按優(yōu)先級排序;在一個以逗號為分隔的列中, 可以定義 多種類型和使用通配符 定義客戶端可以理解的編碼機制。 定義客戶端樂于接受的自然語言列表。 一個響應頭標,它允許服務器指明:將在給定的偏移和長度處,為資源組成部分的接受請求。該頭標的值被理解為請求范圍的度量單位。例如 一個響應頭標,用于定義訪問一種資源所必需的授權(域和被編碼的用戶 口令)。例如: 一個用于定義緩存指令的通用頭標。例如: 0 個用于表明是否保存 接為開放的通用頭標。例如: 同濟大學 碩士學位論文 多線程下載軟 件的設計與實現(xiàn) 8 一種定義基本 實體頭標,為了在實體范圍內解析相對 果沒有定義 標解析相對 用 在 且絕對)或使用 求。例如: ,標明一個實體是如何編碼的。例如:指定包含于請求或響應中數(shù)據(jù)的字節(jié)長度。例如: 382 指定包含于請求或響應中的資源定位( 如果是一絕。對 作 為 被 解 析 實 體 的 相 對 出 發(fā) 點 。 例 如 : ;標明被插入字節(jié)的低位與高位字節(jié)偏移,也標明此實體的總長度。例如: 1001000 標明發(fā)送或者接收的實體的 型。例如: 送 息的日期。例如: 108:42:51 指定實體的有效期。例如: 05 008 12:00:00 一種請求頭標,給定控制用戶代理的人工用戶的電子郵件地址。例如: 被請求資源的主機名。對于使用 請求而言,此頭標是強制性的。例如: 指定被請求資源上次被修改的日期和時間。例如: 0 8:42:51 對于一個已經移動的資源,用于重定向請求者至另一個位置。與狀態(tài)編碼 302(暫時移動)或者 301 (永久性移動)配合使用。例如: ,便是有意請求只來自請求鏈(代理)的下一個服務器的認證。 一種請求頭標域,標明產生請求的初始資源。對于 單,它包含此表單的 面的地址。例如: 。 例 如 : 6(第二章 相關技術 9 種通用頭標,標明對應被接受方反向的消息體實施變換的類型。例如: 允許服務器指定一種新的協(xié)議或者新的協(xié)議版本,與響應編碼 101(切換協(xié)議)配合使用。例如: 定義用于產生請求 的軟件類型(典型的如 覽器)。例如: .0(T) 線程 “線程”是指每個運行程序中的獨立運行程序片段。所謂“多線程處理”是指同時可以對幾個線程進行處理。如用戶界面處理,即程序一方面接受用戶輸入,一方面做出響應給予輸出,而不是讓用戶等待當前任務完成再開始響應。由于多線程處理迅速便捷,有更好的用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論