freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機(jī)專業(yè)畢業(yè)論文)基于java的http斷點(diǎn)續(xù)傳的設(shè)計與實(shí)現(xiàn)-文庫吧

2024-10-17 01:15 本頁面


【正文】 題現(xiàn)狀 自從 “多線程下載 ”技術(shù)發(fā)明以來,這項(xiàng)技術(shù)得到前所未有的關(guān)注已是不爭的事實(shí)。在 “網(wǎng)絡(luò)螞蟻 ”軟件流行開后,許多 下載軟件也都紛紛效仿,是否具有 “多線程下載 ”技術(shù)、甚至能支持多少個下載線程都成了人們評測下載軟件的要素。 “多線程下載 ”的基礎(chǔ)是 WEB服務(wù)器支持遠(yuǎn)程的隨機(jī)讀取,也即支持 “斷點(diǎn)續(xù)傳 ”。這樣,在 下載時可以把文件分成若干部分,每一部分創(chuàng)建一個下載線程進(jìn)行下載。 達(dá)到上訴功能的軟件很多比如迅雷, 旋風(fēng)等軟件都實(shí)現(xiàn)了斷點(diǎn)續(xù)傳,實(shí)現(xiàn)了斷點(diǎn)續(xù)傳后下載過程中就不用擔(dān)心突然停電或者是網(wǎng)絡(luò)突然斷開連接。 2. 開發(fā)工具及關(guān)鍵技術(shù) 開發(fā)工具 開發(fā)語言 Java 是一種簡單的 、 面象對象的 、 分布式的 、 解釋的 、 鍵壯的 、 安全的 、 結(jié)構(gòu)的 、 中立的 、 可移植的 、 性能很優(yōu)異的 、 多線程的 、 動態(tài)的語言。 Java特點(diǎn) [1]有如下: ? 平臺無關(guān)性 : 平臺無關(guān)性是指 Java 能運(yùn)行于不同的平臺。 Java 引進(jìn)虛擬 機(jī) 原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺的 Java接口之間。使用 Java 編寫的程序能在世界范圍內(nèi)共享。 Java 的數(shù)據(jù)類型與機(jī)器無關(guān), Java虛擬機(jī)( Java Virtual Machine)是建立在 硬件和操作系統(tǒng)之上,實(shí)現(xiàn) Java 二進(jìn)制代碼的解釋執(zhí)行功能,提供于不同平臺的接口的。 ? 安全性 : Java 的編程類似 C++,學(xué)習(xí)過 C++的讀者將很快掌握 Java 的髓。 Java 舍棄了 C++的指針對存儲器地址的直接操作,程序運(yùn)行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針侵入系統(tǒng)。 Java 對程序提供了安全管理器,防止程序的非法訪問。 ? 面向?qū)ο?: Java 吸取了 C++面向?qū)ο蟮母拍?, 將數(shù)據(jù)封裝于類中 , 利用類的優(yōu)點(diǎn)實(shí)現(xiàn)了程序的簡潔性和便于維護(hù)性。類的封裝性、繼承性等有關(guān)對象的特性 , 使程序代碼只需一次編譯,然后通過上述特性反復(fù)利用。程序員只需把主要精力用在類和接口的設(shè)計和應(yīng)用上。 Java 提供了眾多的一般對象的類,通過繼承即可使父類的方法。 在 Java 中,類的繼承關(guān)系 是單一的 而 非多重的,一個子類只有一個父類,子類的父類又有一個父類。 Java 提供的 Object 類及其子類的繼承關(guān)系如同一棵倒立的樹形,根類為 Object類, Object類功能強(qiáng)大,經(jīng)常會使用到它及其它派生的子類。 ? 分布式 : Java 建立在擴(kuò)展 TCP/IP 網(wǎng)絡(luò)平臺上。庫函數(shù)提供了用 HTTP 和 FTP 協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易 。 ? 鍵壯性 : Java 致力于檢查程序在編譯和運(yùn)行時的錯誤 , 類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯誤。 Java 可以 自 己 操縱內(nèi)存減少了內(nèi)存出錯的可能性 。 Java 還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。這些功能特征大大提高了開發(fā) Java 應(yīng)用程序的周期。 開發(fā) 工具 Eclipse 是一個開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是, Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具( Java Development Tools, JDT) 1。 1 百度百科 Eclipse是著名的跨平臺的自由 集成開發(fā)環(huán)境 ( IDE)。最初主要用來 Java語言開發(fā),但是目前亦有人通過插件使其 作為其他計算機(jī)語言比如 C++和 Python的開發(fā)工具。 Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得 Eclipse擁有其他功能相對固定的 IDE軟件很難具有的靈活性。許多軟件開發(fā)商以 Eclipse 為框架開發(fā)自己的 IDE。 Eclipse 還包括插件開發(fā)環(huán)境( Plugin Development Environment, PDE),這個組件主要針對希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。 關(guān)鍵技術(shù) JAVA 多線程機(jī)制 下載程序功能模塊的實(shí)現(xiàn)主要利用了面向?qū)ο蟮?Java 高級編程語言。使用 Java 作為開發(fā)工具主要是因?yàn)?Java 是目前比較流行而且非常成功的編程語言。 多線程編程技術(shù)是 Java 語言的重要特點(diǎn)。多線程編程的含義是將程序任務(wù)分成幾個并行的子任務(wù)。特別是在網(wǎng)絡(luò)編程中,有很多功能是可以并發(fā)執(zhí)行的。 Java 中實(shí)現(xiàn)多線程的類有兩種方法: ? 擴(kuò)展 類,用它覆蓋 Thread 類的 run( )方法。 ? 生成實(shí)現(xiàn) 接口的類并將其它的實(shí)例與 實(shí)例相關(guān)聯(lián)。 Thread 類是負(fù)責(zé)向其它類提供線程支持的最主要的類,要使用一個類具有線程功能,在Java 中只要簡單地從 Thread 類派生一個子類就可以了 , 擴(kuò)展 Thread 類 。 由于同一進(jìn)程的多個線程共享同一片存儲空間,在帶來方便的同時,也帶來了訪問沖突這個嚴(yán)重的問題。 Java 語言提供了專門機(jī)制以解決這種沖突,有效避免了同一個數(shù)據(jù)對象被多個線程同時訪問。 由于我們可以通過 private 關(guān)鍵字來保證數(shù)據(jù)對象只能被方法訪問,所以我們只需針對方法提出一套機(jī)制,這套機(jī)制就是 synchronized 關(guān)鍵字,它包括兩種用法: synchronized 方法和 synchronized 塊。 本系統(tǒng)使用 Eclipse 的 Swing 圖形界面技術(shù)進(jìn)行開發(fā),以 包進(jìn)行支持,上述兩個軟件或是開發(fā)包均為免費(fèi)下載,十分方便。 HTTP 協(xié)議簡介 HTTP 協(xié)議 : HTTP的發(fā)展是萬維網(wǎng)協(xié)會( World Wide Web Consortium)和 Inter工作小組( Inter Engineering Task Force)合作的結(jié)果,(他們)最終發(fā)布了一系列的 RFC,其中最著名的就是 RFC 2616。 RFC 2616 定義了 HTTP 協(xié)議的我們今天普遍使用的一個版本 —— HTTP 。 HTTP 是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)( TCP)??蛻舳耸墙K端用戶,服務(wù)器端是網(wǎng)站。通過使用 Web 瀏覽器 、 網(wǎng)絡(luò)爬蟲 或者其它的工具,客戶端發(fā)起一個到服務(wù)器上指 定端口(默認(rèn) 端口 為 80)的 HTTP 請求。(我們稱這個客戶端)叫用戶代理( user agent)。應(yīng)答 的服務(wù)器上存儲著(一些)資源,比如 HTML 文件和圖像。(我們稱)這個應(yīng)答服務(wù)器為源服務(wù)器( origin server)。在用戶代理和源服務(wù)器中間可能存在多個中間層,比如代理,網(wǎng)關(guān),或者隧道( tunnels)。盡管 TCP/IP 協(xié)議 是互聯(lián)網(wǎng)上最流行的應(yīng)用, HTTP 協(xié)議并沒有規(guī)定必須使用它和(基于)它支持的層。 事實(shí)上, HTTP 可以在任何其他互聯(lián)網(wǎng)協(xié)議上,或者在其他網(wǎng)絡(luò)上實(shí)現(xiàn)。 HTTP 只假定(其下層協(xié)議提供)可靠的傳輸,任何能夠提供這種保證的協(xié)議都可以被其使用。 通常,由 HTTP 客戶端發(fā)起一個請求,建立一個到服務(wù) 器指定端口(默認(rèn)是 80端口 )的TCP 連接。 HTTP 服務(wù)器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服務(wù)器(向客戶端)發(fā)回一個狀態(tài)行,比如 HTTP/ 200 OK,和(響應(yīng)的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。 HTTP 使用 TCP 而不是 UDP 的原因在于(打開一個)一個網(wǎng)頁必須傳送很多數(shù)據(jù),而 TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù),和錯誤糾正。 通過 HTTP 或者 HTTPS 協(xié)議請求的資源由統(tǒng)一資源標(biāo)示符( Uniform Resource Identifiers)( 或者,更準(zhǔn)確一些, URLs)來標(biāo)識。 CacheControl 指定請求和響應(yīng)遵循的緩存機(jī)制。在請求消息或響應(yīng)消息中設(shè)置CacheControl并不會修改另一個消息處理過程中的緩存處理過程。請求時的緩存指令包括nocache、 nostore、 maxage、 maxstale、 minfresh、 onlyifcached,響應(yīng)消息中的指令包括 public、 private、 nocache、 nostore、 notransform、 mustrevalidate、proxyrevalidate、 maxage。各個消息中的指令含義如下: ? Public 指示響應(yīng)可被任何緩存區(qū)緩存。 ? Private 指示對于單個用戶的整個或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對于其他用戶的請求無效。 ? nocache 指示請求或響應(yīng)消息不能緩存 ? nostore用于防止重要的信息被無意的發(fā)布。在請求消息中發(fā)送將使得請求和響應(yīng)消息都不使用緩存。 ? maxage 指示客戶機(jī)可以接收生存期不大于指定時間(以秒為單位)的響應(yīng)。 ? minfresh 指示客戶機(jī)可以接收響應(yīng)時間小于當(dāng)前時間 加上指定時間的響應(yīng)。 ? maxstale 指示客戶機(jī)可以接收超出超時期間的響應(yīng)消息。如果指定 maxstale 消息的值,那么客戶機(jī)可以接收超出超時期指定值之內(nèi)的響應(yīng)消息。 ? Date 頭域表示消息發(fā)送的時間,時間的描述格式由 rfc822 定義。例如,Date:Mon,31Dec202020:25:57GMT。 Date 描述的時間表示世界標(biāo)準(zhǔn)時,換算成本地時間,需要知道用戶所在的時區(qū)。 ? Pragma 頭域用來包含實(shí)現(xiàn)特定的指令,最常用的是 Pragma:nocache。在 HTTP/協(xié)議中,它的含義和 CacheControl:nocache 相同。 3. 系統(tǒ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)消失你還是要回頭再來。斷點(diǎn)續(xù)傳就是用來解決這樣的問題的,它的任務(wù)是在下載任務(wù)停止時,記錄當(dāng)前下載的信息并且利用網(wǎng)絡(luò)協(xié)議中的一些重定向機(jī)制繼續(xù)完成下載任務(wù)而不必從頭再來。 隨著使用下載工具的時間的增長,用戶下載的資源越來越多,因此在下載列表中的項(xiàng)目也越來越多,越來越混亂,因此為了便于管理和用戶使用方便,用戶迫切希望下載工具具有下載文件分類的功能。 在下載任務(wù)的管理這一塊,用戶不僅希望下載工具具有下載一個一個資源的功能,而 且具有批量下載有些相似的或有關(guān)聯(lián)的資源的功能。還有些特殊情況下,用戶在下載任務(wù)開始后由于種種原因希望放棄資源的下載,這就要求下載工具具有刪除任務(wù)的功能了。 為了對下載任務(wù)進(jìn)行掌控,用戶往往具有設(shè)置下載任務(wù)的線程數(shù),文件下載網(wǎng)址,文件下載存儲目錄和在下載過程中對下載任務(wù)的狀態(tài)進(jìn)行監(jiān)控等功能需求。 鑒于某些軟件使用初學(xué)者甚至某些電腦初學(xué)者的實(shí)際情況,他們往往需要系統(tǒng)有一個格外的幫助文檔,使他們能夠更快、更好地學(xué)會使用斷點(diǎn)續(xù)傳下載軟件,提高效率。 業(yè)務(wù)流程 分析 系統(tǒng)功能概述 本系統(tǒng)主要劃分為 新建下載任務(wù),暫停下載任務(wù),繼續(xù)下載任務(wù)三個主要功能 。建立新下載任務(wù)后便可以對任務(wù)進(jìn)行暫?;蛘呤抢^續(xù)下載。模塊劃分圖如下所示: 2大模塊劃分圖 Java HTTP斷點(diǎn)續(xù)傳下載系統(tǒng) 新建下載任務(wù) 暫停任務(wù) 繼續(xù)任務(wù)下載 系統(tǒng) UML 活動圖 UML活動圖 系統(tǒng)主界面 新建下載任務(wù) 繼續(xù)下載任務(wù) 暫停下載任務(wù) 繼續(xù)下載任務(wù) 下載完成管理 刪除下載任務(wù) 4. 程序原理分析及構(gòu)架 程序 整體構(gòu)架 MVC本來是存在于 Desktop 程序中的, M是指數(shù)據(jù)模型, V 是指用戶界面, C則是控制器。使用 MVC 的目的是將 M和 V的實(shí)現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。 C 存在的目的則是確保 M和 V 的同步,一旦 M改變, V應(yīng)該同步更新。 視圖是用戶看到并與之交互的界面 。對于 WEB 編程來說是 HTML,對于本系統(tǒng)來說他就是用具體驗(yàn)的界面,又 來實(shí)現(xiàn) 。模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在 MVC的三個部件中,模型擁有最多的處理任務(wù)。 控制器接受 用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1