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

正文內(nèi)容

基于java的多線程跨平臺(tái)下載軟件的實(shí)踐畢業(yè)論文-在線瀏覽

2025-01-10 22:00本頁面
  

【正文】 ...................... 37 斷點(diǎn)數(shù)據(jù)的記錄與恢復(fù) ................................................................................................ 37 功能描述 ........................................................................................................... 37 核心代碼 ........................................................................................................... 37 第六章 結(jié)束語 ........................................................................................................................ 40 參考文獻(xiàn) ................................................................................................................................. 41 致 謝 ................................................................................................................................. 42 3 基于 Java 的多線程跨平臺(tái)下載軟件的 實(shí)踐 摘要 : 在網(wǎng)絡(luò)高速發(fā)展的今天 , 如何能高效合理的 下載信息 資源已經(jīng)變得越來越重要 。 而目前 的網(wǎng)絡(luò)下載工具雖然種類繁多 , 但是并沒有多少開源的軟件可供網(wǎng)絡(luò)編程人員共同 學(xué)習(xí)和 研究 , 這是一個(gè)非常不利于 軟件 發(fā)展的現(xiàn)象 。 關(guān)鍵字 : 網(wǎng)絡(luò)下載 ; 多線程 ; 斷點(diǎn)續(xù)傳 ; 跨平臺(tái) ; 開源 ; The Practice of Java Multithreading and CrossPlatform Download Tool with Broken/Resume Function based on HTTP Abstract: How to work with the inter efficiently now has bee more and more important as the interner sharp developing. And although there’re kinds of inter download tools popular in our life, only few of opensource softwares is helpful for work programmers to work with, obviously it’s not a good phenomenon. Also for the loading principle and HTTP research of multithreaded, as a result, I decided to work out an opensource inter download tool for inter lovers to exploit. We develop this software with J2SE, and use the documents as a data storage tool in order to has a further development in loading speed and resourse sharing, so that we can make it be crossplatform. We can find out that the tools such as Thurnderbolt and Express are nonopensource and work for just some platforms, they are far to be crossplatform. Key words: Inter download。 Broken/Resume Function。 opensource。 幾年來 , 下載技術(shù)也在不停地發(fā)展 。 其最大的問題是 , 由于網(wǎng)絡(luò)的不穩(wěn)定性 , 一旦連接斷開使得下載過程中斷 , 就不得不全部從頭再來一次 。 隨著多線程技術(shù)的發(fā)明 , 越來越多的語言能很完善的支持此技術(shù) 。 多線程下載的基礎(chǔ)是 WEB 服務(wù)器支持遠(yuǎn)程的隨機(jī)讀取 , 即支持?jǐn)帱c(diǎn)續(xù)傳 。 現(xiàn)在 , 不要說編寫專門的下載軟件 , 在自己編寫的軟件中 , 加入下載功能有時(shí)也非常必要 。 本文的主 題即怎樣編寫一個(gè)支持?jǐn)帱c(diǎn)續(xù)傳和多線程的下載模塊 , 主要支持 HTTP 協(xié)議 , 其他協(xié)議 如 BT, Vagaa, Emule 等協(xié)議 的支持等待以后的支持開源的朋友繼續(xù)開發(fā) 。 5 第 一 章 緒論 問題的研究 背景與研究?jī)r(jià)值 問題的研究背景 以往我們開發(fā)的程序大多是單線程的 , 即一個(gè)程序只有一條從頭至尾的執(zhí)行線索 。 例如 , 一個(gè)網(wǎng)絡(luò)服 務(wù)器可能需要同時(shí)處理多個(gè)客戶機(jī)的請(qǐng)求等 。 多線程是指同時(shí)存在幾個(gè)執(zhí)行體 ,按幾條不同的執(zhí)行線索共同工作的情況 , 它使得編程人員可以很方便地開發(fā)出具有多線程功能、能同時(shí)處理多個(gè)任務(wù)的功能強(qiáng)大的應(yīng)用程序 。 為了建立這些線程正在同步執(zhí)行的感覺 。 多個(gè)線程的執(zhí)行是并發(fā)的 , 也就是在邏輯上 的 “ 同時(shí) ” , 而不管是否是物 理上的“ 同時(shí) ” 。 自從 “ 多線程下載 ” 技術(shù)發(fā)明以來 , 這項(xiàng)技術(shù)得到前所未有的關(guān)注已是不爭(zhēng)的事實(shí) 。 “ 多線程下載 ” 的基礎(chǔ)是 WEB 服務(wù)器支持遠(yuǎn)程的隨機(jī)讀取 , 即支持 “ 斷點(diǎn)續(xù)傳 ” 。 問題的研究?jī)r(jià)值 多線程和傳統(tǒng)的單線程在程序設(shè)計(jì)上最大的區(qū)別在于 , 由于各個(gè)線程的控制流彼此獨(dú)立 , 使得各個(gè)線程之間的代碼是 無 序執(zhí)行 的 , 由此帶來的線程調(diào)度問題 。 所有這些都使得這一步比較復(fù)雜 。 現(xiàn)在 , 不要說編寫專門的下載軟件 , 在自己編寫的軟件中 , 加入下載功能有時(shí)也非常必要 。 由于網(wǎng)絡(luò)的不穩(wěn)定性 , 一旦連接斷開使得下載過程中斷 , 就不得不全部從頭再來一 6 次 。 可行性分析 技術(shù)可行性 多線程跨平臺(tái)的下載工具的實(shí)現(xiàn)不是很困難 , 首先是多線程 , JAVA 語言很好的支持了多線程 , 其 API 中 包中提供了很多多線程的處理 。 第三是對(duì)協(xié)議的支持 , API 中的 .*中提供了對(duì) HTTP 支持的方法 。 經(jīng)濟(jì)可行性 資金投入 : 基本上不需要資金投入 , 緊緊需要人力開發(fā)的投入 。 市場(chǎng)前景 : 本軟件為開源軟件 , 完全公益性 。 操作可行性 大學(xué)期間對(duì) JAVA 有了很深的認(rèn)識(shí) , 具有一定的技術(shù)基礎(chǔ) , 而且適逢在惠普公司進(jìn)行實(shí)習(xí) , 指導(dǎo)老師也有很強(qiáng)的 JAVA 開發(fā)項(xiàng)目經(jīng)驗(yàn) , 不懂的問題可以請(qǐng)教老師 , 相信一定能完成該項(xiàng)目 。 7 第二章 相關(guān)基礎(chǔ)知識(shí) 以及 開發(fā)平臺(tái) 相關(guān)基礎(chǔ)知識(shí) 下載協(xié)議概述 按照下載方式 , 總的來說這些協(xié)議分為兩 大類 : 第一類 : 服務(wù)器下載 ; 如 HTTP 和 FTP, 他們都是將服務(wù)器上已存在的文件復(fù)制到你的電腦上 , 這些文件保存在服務(wù)器上 , 但是你只能通過地址來下載 , 下載工具就是復(fù)制這個(gè)文件到你的電腦 , 而迅雷這類軟件還會(huì)去其他服務(wù)器上搜索相同的文件 , 并從多個(gè)不同的服務(wù)器同時(shí)下載 , 即鏡像下載 , 這樣也能加快速度 。 圖 21 服務(wù)器下載原理圖 Fig 21 Server Download principle 第二類 : P2P(Peer To Peer)下載 ; BT、 EMULE、 VAGAA 都屬于此類 , 雖然協(xié)議不一樣 , 但是下載方式都是根據(jù)文件信息 , 從互聯(lián)網(wǎng)中尋找正在下載該文件的用戶 , 并從他們那里下載 。 此類軟件就是在浩瀚的互聯(lián)網(wǎng)中尋找已經(jīng)下載或者正在下載的那些文件 , 所有的下載用戶形成一個(gè)連鎖網(wǎng)絡(luò) , 每個(gè)人都從其他人那里獲得 ,同時(shí)也給別人上傳 , 體現(xiàn)了人人平等的關(guān)系 。 圖 22 P2P下載基本原理圖 Fig 22 P2P principle HTTP 協(xié)議簡(jiǎn)介 在 TCP/IP 體系結(jié)構(gòu)中 , HTTP 屬于應(yīng)用層協(xié)議 , 位于 TCP/IP 協(xié)議的頂層 。 這些信息(文檔)類型的格式由 MIME定義 。 HTTP 定義的事務(wù)處理由以下四步組成 : o 客戶與服務(wù)器建立連接 ; o 客戶向服務(wù)器提出請(qǐng)求 ; 9 o 如果請(qǐng)求被接受 , 則服務(wù)器送回響應(yīng) , 在響應(yīng)中包括狀態(tài)碼和所需的文件 ; o 客戶與服務(wù)器斷開連接 ; o 一次 HTTP 操作稱為一次事務(wù)( transaction) 。 3. HTTP 使用元信息作為頭標(biāo) HTTP 對(duì)所有事務(wù)都加了 頭標(biāo)( header) 。 它使服務(wù)器能夠提供正在傳送數(shù)據(jù)的有關(guān)信息 。 從功能上講 , HTTP 支持四類元信息 : 一般信息頭標(biāo)、請(qǐng)求頭標(biāo)、響應(yīng)頭標(biāo)和實(shí)體頭標(biāo) 。 HTTP 支持兩種請(qǐng)求和響應(yīng) , 即簡(jiǎn)單請(qǐng)求與完全請(qǐng)求和簡(jiǎn)單響應(yīng)與完全響應(yīng) 。 HTTP的請(qǐng)求 [13] HTTP 的常用請(qǐng)求方法 : 表 21 HTTP的常用請(qǐng)求方法 Table 21 HTTP request method 方 法 說 明 GET 請(qǐng)求讀取一個(gè) Web頁面 HEAD 請(qǐng)求讀取一個(gè) Web頁面的頭標(biāo) PUT 請(qǐng)求存儲(chǔ)一個(gè) Web頁面 POST 附加到命名資源中 DELETE 刪除 Web頁面 10 LINK 連接兩個(gè)已有資源 UNLINK 取消兩個(gè)資源之間的已有連接 HTTP 請(qǐng)求的格式如下所示 : < requestline> < headers> < blank line> [< requestbody> ] 在 HTTP 請(qǐng)求中 , 第一行必須是一個(gè)請(qǐng)求行( request line) , 用來說明請(qǐng)求類型、要訪問的資源以及使用的 HTTP 版本 。 在首部之后是一個(gè)空行 , 再此之后可以添加任意的其他數(shù)據(jù) [稱之為主體( body) ]。只要在 Web瀏覽器上輸入一個(gè) URL, 瀏覽器就將基于該 URL向服務(wù)器發(fā)送一個(gè) GET請(qǐng)求 ,以告訴服務(wù)器獲取并返回什么資源 。 U。 enUS。 該行的第二部分是一個(gè)斜杠( /) , 用來說明請(qǐng)求的是該域名的根目錄 。 那么請(qǐng)求發(fā)到哪里去呢?這就是第二行的內(nèi)容 。 首部 HOST 將指出請(qǐng)求的目的地 。 第三行中包含的是首部 UserAgent, 服務(wù)器端和客戶 端腳本都能夠訪問它 , 它是瀏覽器類型檢測(cè)邏輯的重要基礎(chǔ) 。 最后 11 一行是首部 Connection, 通常將瀏覽器操作設(shè)置為 KeepAlive(當(dāng)然也可以設(shè)置為其他值 , 但這已經(jīng)超出了本 文 討論的范圍) 。 即使不存在請(qǐng)求主體 , 這個(gè)空行也是必需的 。 U。 enUS。 要發(fā)送 GET請(qǐng)求的參數(shù) , 則必須將這些額外的信息附在 URL 本身的后面 。name2=value2amp。nameN=valueN 該信息稱之為查詢字符串( query string) , 它將會(huì)復(fù)制在 HTTP 請(qǐng)求的請(qǐng)求行中 , 如下所示 : GET /books/? name1=value1amp。...amp。 U。 enUS。 通常 , 當(dāng)填寫一個(gè)在線表單并提交它時(shí) , 這些填入的數(shù)據(jù)將以 POST 請(qǐng)求的方式發(fā)送給服務(wù)器 。 U。 enUS。publisher=Wiley 從上面可以發(fā)現(xiàn) , POST 請(qǐng)求和 GET 請(qǐng)求之間有一些區(qū)別 。 你會(huì)發(fā)現(xiàn)首部 Host 和 UserAgent 仍然存在 , 在后面有兩個(gè)新行 。 瀏覽器始終以 application/ xform urlencoded 的格式編碼來傳送數(shù)據(jù) , 這是針對(duì)簡(jiǎn)單 URL 編碼的 MIME 類型 。 在首部Connection 后是一個(gè)空行 , 再后面就是請(qǐng)求主 體 。 你可以以同樣的格式來組織 URL 的查詢字符串參數(shù) 。 下一步我們來看看服務(wù)器將對(duì) HTTP 請(qǐng)求發(fā)送什么響應(yīng) 。 狀態(tài)行( status line)通過提供一個(gè)狀態(tài)碼來說明所請(qǐng)求的資源情況 。 狀態(tài)行始終包含的是狀態(tài)碼和相應(yīng)的簡(jiǎn)短消息 , 以避免混亂 。 ? 304 (NOT MODIFIED): 該資源在上次請(qǐng)求之后沒有任何修改 。 ? 401 (UNAUTHORIZED):客戶端無權(quán)訪問該資源 。 ? 403 (FORBIDDEN):客戶端未 能獲得授權(quán) 。 ? 404 (NOT FOUND):在指定的位置不存在所申請(qǐng)的資源 。 通常 , 服務(wù)器會(huì)返回一個(gè)名為 Date 的首部 , 用來說明響應(yīng)生成的日期和時(shí)間(服務(wù)器通常還
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1