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

正文內(nèi)容

基于java的多線(xiàn)程跨平臺(tái)下載軟件的實(shí)踐畢業(yè)論文-文庫(kù)吧資料

2024-11-15 22:00本頁(yè)面
  

【正文】 dResolve 方法中,我們也可以指定 JVM 返回我們特定的對(duì)象。 反序列化: 就是把文件中的對(duì)象讀出來(lái)并恢復(fù)。當(dāng)進(jìn)行序列化的時(shí)候, JVM 首先會(huì)調(diào)用 writeReplace 方法,在這個(gè)階段我們可以張冠李戴,將需要進(jìn)行序列化的對(duì)象換成我們指定的對(duì)象。 對(duì)象序列化 對(duì)象的序列化實(shí)質(zhì)就是對(duì)對(duì)象進(jìn)行操作。 q=.2 仔細(xì)看一下就會(huì)發(fā)現(xiàn)多了一行 RANGE: bytes=2020200; 這一行的意思就是告訴服務(wù)器 這個(gè)文件從 2020200 字節(jié)開(kāi)始傳 , 前面的字節(jié)不用傳了 。 GET / HTTP/ UserAgent: NetFox RANGE: bytes=2020200 Accept: text/html, image/gif, image/jpeg, *。 所以在客戶(hù)端瀏覽器傳給 Web 服務(wù)器的時(shí)候要多加一條信息 從哪里開(kāi)始 。 MSIE 。打個(gè)比方 , 瀏覽器請(qǐng)求服務(wù)器上的一個(gè)文時(shí) , 所發(fā)出的請(qǐng)求如下 : 假設(shè)服務(wù)器域名為 , 文件名為 。 注意 : 這里的文件打開(kāi)時(shí)一定要以二制打開(kāi) , 否則在調(diào)用 fseek 時(shí)將導(dǎo)致位置定位不正確 。 每個(gè)線(xiàn)程都記錄下來(lái)了當(dāng)前已經(jīng)下載到的位置 , 這樣若有線(xiàn)程出錯(cuò)了 , 可以從斷點(diǎn)處繼續(xù)下載 。 創(chuàng)建各個(gè)下載線(xiàn)程 , 每個(gè)線(xiàn)程接受到數(shù)據(jù)后就保存到相應(yīng)的位置上去 。 通過(guò) HTTP 的 Get 命令 , 這里需要指定 From 和 To. 創(chuàng)建一個(gè)文件 , 這個(gè)文件是一個(gè)空文件 , 不需要事先生成與下載文件同樣大小的空文件 。 Java 中的多線(xiàn)程 現(xiàn)在將多線(xiàn)程下載同一個(gè)文件的原理講述一下 [3]: 14 首先得到要下載的文件的長(zhǎng)度 , 這是通過(guò) HTTP 的 HEAD 命令得到其長(zhǎng)度 。 注意 , 這里并沒(méi)有指明針對(duì)該響應(yīng)的請(qǐng)求類(lèi)型 , 不過(guò)這對(duì)于服務(wù)器并不重要 。 響應(yīng)主體所包含的就是所請(qǐng)求資源的 HTML 源文件(盡管還可能包含純文本或其他資源類(lèi)型的二進(jìn)制數(shù)據(jù)) 。接下來(lái)的兩個(gè)首部大家應(yīng)該熟悉 , 就是與 POST 請(qǐng)求中一樣的 ContentType 和ContentLength。 在狀態(tài)行之后是一些首部 。 這通常是在 401 之后輸入了不正確的用戶(hù)名或密碼 。 這通常會(huì)使得瀏覽器要求用戶(hù)輸入用戶(hù)名和密碼 , 以登錄到服務(wù)器 。 這通常用于瀏覽器的緩存機(jī)制 。 最常用的狀態(tài)碼有 : ? 200 (OK): 找到了該資源 , 并且一切正常 。 以下就是一個(gè) HTTP響應(yīng)的例子 : HTTP/ 200 OK Date: Sat, 31 Dec 2020 23:59:59 GMT ContentType: text/html; charset=ISO88591 ContentLength: 122 13 < html> < head> < title> Homepage< /title> < /head> < body> < ! body goes here > < /body> < /html> 在本例中 , 狀態(tài)行給出的 HTTP 狀態(tài)代碼是 200, 以及消息 OK。 HTTP的 響應(yīng) 如下所示 , HTTP 響應(yīng)的格式與請(qǐng)求的格式十分類(lèi)似 : < statusline> < headers> < blank line> [< responsebody> ] 正如你所見(jiàn) , 在響應(yīng)中唯一真正的區(qū)別在于第一行中用狀態(tài)信息代替了請(qǐng)求信息 。 正如前面所提到的 , 還有其他的 HTTP 請(qǐng)求類(lèi)型 , 它們遵從的基本格式與 GET 請(qǐng)求和 POST請(qǐng)求相同 。 與大多數(shù)瀏覽器的 POST 請(qǐng)求一樣 ,這是以簡(jiǎn)單的 “ 名稱(chēng) — 值 ” 對(duì)的形式給出的 , 其中 name 是 Professional Ajax,publisher 是 Wiley。 首部 ContentLength 說(shuō)明了請(qǐng)求主體的字節(jié)數(shù) 。 其中首部 ContentType 說(shuō)明了請(qǐng)求主體的內(nèi)容是如何編碼的 。 首先 , 請(qǐng)求行開(kāi)始處的 GET改為了 POST, 以表示不同的請(qǐng)求類(lèi)型 。 rv:.6) Gecko/20200225 Firefox/ ContentType: application/xformurlencoded ContentLength: 40 Connection: KeepAlive name=Professional%20Ajaxamp。 Windows NT 。 以下就是一個(gè)典型的 POST 請(qǐng)求 : POST / HTTP/ Host: 12 UserAgent: Mozilla/ (Windows。 rv:.6) Gecko/20200225 Firefox/ Connection: KeepAlive 另一方面 , POST 請(qǐng)求在請(qǐng)求主體中為服務(wù)器提供了一些附加的信息 。 Windows NT 。nameN=valueN HTTP/ Host: UserAgent: Mozilla/ (Windows。name2=value2amp。...amp。 其格式類(lèi)似于 : URL ? name1=value1amp。 rv:.6) Gecko/20200225 Firefox/ Connection: KeepAlive 注意只有第一行的內(nèi)容發(fā)生了變化 , 它只包含 URL 中 后面的部分 。 Windows NT 。 如果要獲取一個(gè)諸如 的 域內(nèi)的頁(yè)面 ,那么該請(qǐng)求可能類(lèi)似于 : GET /books/ HTTP/ Host: UserAgent: Mozilla/ (Windows。 注意 , 在最后一個(gè)首部之后有一個(gè)空行 。 該信息由你使用的瀏覽器來(lái)定義(在本例中是 Firefox ) , 并且在每個(gè)請(qǐng)求中將自動(dòng)發(fā)送 。 結(jié)合 HOST 和上一行中的斜杠( /) , 可以通知服務(wù)器請(qǐng)求的是 ( HTTP 才需要使用首部 HOST, 而原來(lái)的 版本則不需要使用) 。 第 2行是請(qǐng)求的第一個(gè)首部 , HOST。 該行的最后一部分說(shuō)明使用的是 HTTP 版本(另一個(gè)可選項(xiàng)是 ) 。 rv:.6) Gecko/20200225 Firefox/ Connection: KeepAlive 請(qǐng)求行的第一部分說(shuō)明了該請(qǐng)求是 GET 請(qǐng)求 。 Windows NT 。 對(duì)于 的 GET 請(qǐng)求如下所示 : GET / HTTP/ Host: UserAgent: Mozilla/ (Windows。 在 HTTP 中 , 定義了大量的請(qǐng)求類(lèi)型 , 不過(guò)開(kāi) 發(fā)人員關(guān)心的只有 GET 請(qǐng)求和 POST 請(qǐng)求 。 緊接著是一個(gè)首部( header)小節(jié) , 用來(lái)說(shuō)明服務(wù)器要使用的附加信息 。 5. HTTP 是基于文本的簡(jiǎn)單協(xié)議 。 4. HTTP 支持兩種請(qǐng)求和響應(yīng)格式 HTTP 由不同的兩部分組成 , 一是從瀏覽器發(fā)往服務(wù)器的請(qǐng)求 , 二是服務(wù)器對(duì)客戶(hù)的響應(yīng) 。例如 , 傳送對(duì)象是哪種類(lèi)型 , 是用哪種語(yǔ)言書(shū)寫(xiě)的等 。 也就是說(shuō) , 在主要數(shù)據(jù)前加上一塊信息 ,稱(chēng)為 元信息( metainformation) 。 2. HTTP 是無(wú)狀態(tài)的 也就是說(shuō) , 瀏覽器和服務(wù)器每進(jìn)行一次 HTTP 操作 , 就建立一次連接 , 但任務(wù)結(jié)束就中斷連接 。 HTTP 協(xié)議具有以下的特點(diǎn) : 1. HTTP 按客戶(hù) /服務(wù)器模式工作 HTTP 支持客戶(hù)(一般情況是瀏覽器)與服務(wù)器的通訊 , 相互傳輸數(shù)據(jù) 。 瀏覽 Web時(shí) , 瀏覽器通過(guò) HTTP 協(xié)議與 Web 服務(wù)器交換信息 。 由于沒(méi)有固定的服務(wù)器 , 每個(gè)人即充當(dāng)客戶(hù)端也充當(dāng) 服務(wù)器 , 人越多下載 速度 越快是這類(lèi)下載的優(yōu)點(diǎn) 。 當(dāng)然軟件會(huì)尋找用戶(hù) , 并從多個(gè)用戶(hù)下載自己沒(méi)有的部分 , 而將自己已下載的而別人沒(méi)有的上傳給別人 , 相對(duì)與別 8 人來(lái)說(shuō) , 你的上傳就是他的下載了 。 如果下載的人很多的話(huà) , 服務(wù)器輸出的流量也很大 , 這樣的話(huà)會(huì)加重服務(wù)器的負(fù)擔(dān) , 下載速度必然會(huì)慢下來(lái) 。 而對(duì)于用戶(hù)來(lái)說(shuō) , 綠色軟件 , 無(wú)需安裝 , 操作簡(jiǎn)單易懂 , 使用戶(hù)不用具備專(zhuān)業(yè)知識(shí) , 也可使用本軟件 。 現(xiàn)在 Windows 平臺(tái)下的下載工具已經(jīng)足 夠多 , 但在其他平臺(tái)下如 Linux 及 Mac 下還是有一定的市場(chǎng)前景 , 相信經(jīng)過(guò)開(kāi)源愛(ài)好者的維護(hù)一定會(huì)有很大的發(fā)展空間 。 因?yàn)?JAVA 是開(kāi)源語(yǔ)言 , Eclipse 也是開(kāi)源軟件 , 互聯(lián)網(wǎng)上的資源一般也是免費(fèi)下載 。 最后也是最復(fù)雜的就是 Java 的圖形化界面 , JAVA 本身不擅長(zhǎng)圖形化界面 , 但 AWT及 Swing[9]也提供了足夠的支持 。 其次是跨平臺(tái) ,JAVA 語(yǔ)言本身就是平臺(tái)無(wú)關(guān)性的語(yǔ)言 , 編譯生成 class 的字節(jié)碼文件 , 不同的平臺(tái)提供不同的 JVM, 確保了 JAVA 的跨平臺(tái)性 。 “斷點(diǎn)續(xù)傳”概念 的推出,使得 下載中斷 的資源 , 在重新建立連接后 , 跳過(guò)已經(jīng)下載的部分 , 而只下載還沒(méi)有下載的部分 ,極大的滿(mǎn)足了用戶(hù)的需要。 如讓自己的軟件支持自動(dòng)在線(xiàn)升級(jí) , 或者在軟件中自動(dòng)下載新的數(shù)據(jù)進(jìn)行數(shù)據(jù)更新 , 這都是很有用、而且很實(shí)用的功能 。 但是可以明顯提高網(wǎng)絡(luò)文件的下載速度 。 由于是多線(xiàn)程進(jìn)行斷點(diǎn)續(xù)傳 , 還要考慮記錄多個(gè)斷點(diǎn)位置 , 且記錄斷點(diǎn)位置時(shí)也要考慮同步互斥等問(wèn)題 。 這樣 , 在下載時(shí)可以把文件分成若干部分 , 每一部分創(chuàng) 建一個(gè)下載線(xiàn)程進(jìn)行下載 。 在 “ 網(wǎng)絡(luò)螞蟻 ” 軟件流行開(kāi)后 , 許多下載軟件也都紛紛效仿 , 是否具有 “ 多線(xiàn)程下載 ” 技術(shù)、甚至能支持多少個(gè)下載線(xiàn)程都成了人們?cè)u(píng)測(cè)下載軟件的要素 。 如果系統(tǒng)只有一個(gè) CPU, 那么真正的 “ 同時(shí) ” 是不可能的 , 但是由于 CPU 的速度非常快 , 用戶(hù)感覺(jué)不到其中的區(qū)別 , 因此我們也不用關(guān)心它 , 只需要設(shè)想各個(gè)線(xiàn)程是同時(shí)執(zhí)行即可 。 Java 快速地把控制從一個(gè)線(xiàn)程切換到另一個(gè)線(xiàn)程 。 雖然執(zhí)行線(xiàn)程給人一種幾個(gè)事件同時(shí)發(fā)生的感覺(jué) , 但這只是一種錯(cuò)覺(jué) , 因?yàn)槲覀兊挠?jì)算機(jī)在任何給定的時(shí)刻只能執(zhí)行那些線(xiàn)程中的一個(gè) 。 Java 語(yǔ)言的一大特性就是內(nèi)置對(duì)多線(xiàn)程的支持 。然而現(xiàn)實(shí)世界中的很多過(guò)程都具有多條線(xiàn)索 共同執(zhí)行 同 一 動(dòng)作的特性 。 當(dāng)然 , 下載的過(guò)程非常復(fù)雜 , 在一篇文章中難以全部 闡明 , 所以 ,與下載過(guò)程關(guān)系不直接的部分基本上都忽略了 , 如圖形化界面 和網(wǎng)絡(luò)錯(cuò)誤處理等 。 而現(xiàn)在網(wǎng)絡(luò)上的下載軟件往往都是支持單一系統(tǒng)平臺(tái)的 , 為了支持開(kāi)源軟件及多平臺(tái)可移植 , 本文 選用了 Java 語(yǔ)言進(jìn)行系統(tǒng)的開(kāi)發(fā) , 數(shù)據(jù)采用文件存儲(chǔ) , 這樣能更好的支持跨平臺(tái)的特性 。 這樣 , 在下載時(shí)可以把文件分成若干部分 , 每一部分創(chuàng)建一個(gè)下載線(xiàn)程進(jìn)行下載 。 在“網(wǎng)絡(luò)螞蟻”軟 件流行開(kāi)后 , 許多下載軟件也都紛紛效仿 , 是否具有多線(xiàn)程下載技術(shù)、甚至能支持多少個(gè)下載線(xiàn)程都成了人們?cè)u(píng)測(cè)下載軟件的要素 。 隨后 , “斷點(diǎn)續(xù)傳”的概念就出來(lái)了 , 顧名思義 , 就是如果下載中斷 , 在重新建立連接后 , 跳過(guò)已經(jīng)下載的部分 , 而只下載還沒(méi)有下載的部分 。 最原始的下載功能僅僅是個(gè)“下載”過(guò)程 , 即從 WEB 服務(wù)器上連續(xù)地讀取文件 。 4 引言 在當(dāng)今的網(wǎng)絡(luò)時(shí)代 , 下載軟件是使用最為頻繁的軟件之一 。 Crossplatform。 Multithreaded。 因此本論文研究了基于 HTTP協(xié)議的多線(xiàn)程斷點(diǎn)續(xù)傳的原理 , 并設(shè)計(jì)開(kāi)發(fā)了一個(gè)跨平臺(tái)的開(kāi)源斷點(diǎn)續(xù)傳下載軟件 , 它使 用 J2SE作為開(kāi)發(fā)環(huán)境 , 以 文件作為數(shù)據(jù)的存儲(chǔ)工具 , 以期 望其 在下載速度與資源共享上 與現(xiàn)有開(kāi)源下載工具相比 , 能有更進(jìn)一步的發(fā)展 。 本科畢業(yè)論文(設(shè)計(jì)) 題 目 基于 HTTP的多線(xiàn)程 斷點(diǎn)續(xù)傳 下載 工具應(yīng)用開(kāi)發(fā) 學(xué) 院 計(jì)算機(jī)與信息科學(xué)學(xué)院 專(zhuān) 業(yè) 年 級(jí) 學(xué) 號(hào) 姓 名 指 導(dǎo) 教 師 成 績(jī) 2020 年 4 月 30 日 1 目 錄 摘要 ......................................................................................................................................... 3 Abstract ....................................................................................................
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1