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

正文內(nèi)容

基于http的多線程下載器畢業(yè)論文-在線瀏覽

2024-09-12 20:16本頁面
  

【正文】 .. 30 模塊流程分析 ...................................................... 30 LoadProperty 模塊實(shí)現(xiàn) ...................................... 30 懸浮窗模塊設(shè)計(jì) ..................................................................................... 32 懸浮窗 UI 設(shè)計(jì) .................................................... 32 懸浮窗主件監(jiān)聽事件 ......................................... 33 第五章 結(jié)論 ......................................................................................................... 35 參 考 文 獻(xiàn) ........................................................................................................... 36 致 謝 .......................................................................................................................... 37 湖 南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 3 第一章 引言 項(xiàng)目背景 目前國內(nèi)下載器有很多種,有基于 Http 下載的,也有基于 P2P 下載的(最典型的就是電驢)。 HTTP 下載模式是最經(jīng)典的下載方式,也是發(fā)展得最成熟的技術(shù),絕大部分的下載軟件是從基于 HTTP 下載模式發(fā)展來的。 對(duì)于多線程技 術(shù)大家都不陌生,多線程技術(shù)在現(xiàn)階段的下載器中得到了廣泛的應(yīng)用。當(dāng)下載器采用多線程模式,實(shí)現(xiàn)在網(wǎng)絡(luò)環(huán)境下對(duì)資源的同步下載,可以明顯提高對(duì) CPU 和帶寬的利用率,最終實(shí)現(xiàn)下載速度的提高。 編寫目的 如今是個(gè)互聯(lián)網(wǎng)的時(shí)代,網(wǎng)絡(luò)資源共享已經(jīng)是潮流。本文重點(diǎn)介紹了基于 Http 協(xié)議的多線程下載器的原理以及實(shí)現(xiàn),希望能幫助用戶更好的了解下載器,從而讓用戶能夠更好的、更合理的去 使用下載器,方便用戶快速的下載所需要的資源。下面我將介紹如何利用 Java 以及 Java 提供的用戶界面開發(fā)工具包 Swing 來實(shí)現(xiàn)下載器的功能和界面。主要介紹本課題的背景和意義。主要介紹本系統(tǒng)涉及的相關(guān)概念、技術(shù)。本章主要對(duì)系統(tǒng)進(jìn)行了需求分析,系統(tǒng)功能模塊劃分;同時(shí)還給出了系統(tǒng)流程圖和用例圖。這章是全文的核心部分,包 括開發(fā)運(yùn)行環(huán)境構(gòu)建,系統(tǒng)湖 南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 4 各功能模塊的實(shí)現(xiàn)等。湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 5 第二章 應(yīng)用開發(fā)相關(guān)技術(shù)和理論 HTTP Http 簡介 HTTP 是 Hyper Text Transportation Protocol(超文本傳輸協(xié)議 )的縮寫,是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則,通過因特網(wǎng)傳送萬維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議,位于應(yīng)用層。簡單的 請(qǐng)求響應(yīng)過程如圖 所示: 圖 請(qǐng)求與響應(yīng) 請(qǐng)求報(bào)文是指客戶端瀏覽器向網(wǎng)絡(luò)服務(wù)器請(qǐng)求頁面時(shí),發(fā)送到服務(wù)器端的字符串,必須符合 HTTP 協(xié)議的格式要求,它可能包含如下組成部分: GET / HTTP/ Accept: image/gif, image/xxbitmap, image/jpeg, …, */* // 客戶端可接受的文件類型 AcceptLanguage: zh UACPU: x86 //客戶端處理器類型 AcceptEncoding: gzip, deflate //表示客服端是否支持壓縮格式傳輸 UserAgent: Mozilla/ (patible。 Windows NT ) Host: :80 Connection: KeepAlive //表示客戶端是否與主機(jī)持續(xù)連接 空行 注意:請(qǐng)求報(bào)文中的大部分項(xiàng)目是可選的,只有 GET 和 Host 部分是必需的; GET 部分的格式是: GET空格 /[請(qǐng)求的 URL]空格 HTTP/協(xié)議版本號(hào) 如: GET / HTTP/ Host 部分的格式是: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 6 Host:空格 服務(wù)器域名或 IP 地址 :端口號(hào) 如: Host: :80 換言之,請(qǐng)求報(bào)文中只要包含以上兩部分,就可以向網(wǎng)絡(luò)站點(diǎn)服務(wù)器請(qǐng)求到頁面??崭?charset=字符集編碼 用來描述服務(wù)器發(fā)回響應(yīng)的文件類型以及字符集編碼, text/html 說明是文本文件或超文本文件,如: ContentType: text/html??蛻舳嗽谑盏匠R?guī)響應(yīng)之前,應(yīng)準(zhǔn)備接收一個(gè)或多個(gè) 1xx 響應(yīng)。 101切換協(xié)議。 200確定。 201已創(chuàng)建。 203非權(quán)威性信息。 205重置內(nèi)容。 3xx重定向 客戶 端瀏覽器必須采取更多操作來實(shí)現(xiàn)請(qǐng)求。 301對(duì)象已永久移走,即永久重定向。 304未修改。 4xx客戶端錯(cuò)誤 發(fā)生錯(cuò)誤,客戶端似乎有問題。 400錯(cuò)誤的請(qǐng)求。 IIS 定義了許多不同的 401 錯(cuò)誤,它們指明更為具體的錯(cuò)誤原因。 5xx服務(wù)器錯(cuò)誤 服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求。 504網(wǎng)關(guān)超時(shí)。 JAVA Java 簡介 Java 是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計(jì)語言和 Java 平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下, Java 更具備了顯著優(yōu)勢和廣闊前景。它以抽象窗口工具包( AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。 Swing 組件是在 AWT 組件基礎(chǔ)上發(fā)展而來的輕量級(jí)組件,與 AWT 相比不但改湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 8 進(jìn)了用戶界面,而且所需的系統(tǒng)資源更少; Swing 是純 Java 組件,使得應(yīng)用程序在不同的平臺(tái)上運(yùn)行時(shí)具有相同外觀和相同的行為。也被稱為輕量進(jìn)程( lightweight processes)。 線程,有時(shí)被稱為輕量進(jìn)程 (Lightweight Process, LWP),是程序執(zhí)行流的最小單元。另外,線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。每一個(gè)程序都至少有一個(gè)線程,那就是程序本身。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。在此單線程的工作模式下,如果把CPU 看作是一共有 100 個(gè)時(shí)間片的話, CPU 可能一直都只是花了其中的 10 個(gè)時(shí)間片來處理當(dāng)前進(jìn)程所要做的事情,只是用到了 CPU 的 10%的時(shí)間片,而其他時(shí)間都白白浪費(fèi)了,當(dāng)然,實(shí)際上 CPU 的工作模式還是做完一件事以后再去做另一件事,只是 CPU 的處理速度非???,很快就處理完成所請(qǐng)求的情事。如當(dāng)前進(jìn)程要完成三件事情 3,那么 CPU 會(huì)分別用 10%的時(shí)間來同時(shí)處理這 3 件事情,從而讓 CPU的使用率達(dá)到了 30%,大大地 提高了 CPU 的利用率。 Java 線程的實(shí)現(xiàn) Java 線程的實(shí)現(xiàn)一般有兩種方式:第一種是繼承 Thread 類;第二種是實(shí)現(xiàn)Runnable 接口。而多線程程序設(shè)計(jì)可以很好的解決程序并發(fā)的問題。 由于下載資源的時(shí)間長短不一,可能很短也可能比較長。這些原因都會(huì)導(dǎo)致下載的 中斷,但是當(dāng)用戶重新下載資源時(shí)發(fā)現(xiàn)原來下載的數(shù)據(jù)已經(jīng)消失你還是要回頭再來。 簡單來說可以將需求整理為如下: 可視化界面; 支持多線程下載; 支持?jǐn)帱c(diǎn)續(xù)傳; 系統(tǒng)功能模塊的 劃分 系統(tǒng)主要包含如下幾個(gè)類: MainFrame: 負(fù)責(zé)定義可視化界面,定義主界面的監(jiān)聽事件。 GlobalData: 用于保存全局?jǐn)?shù)據(jù)。 Download: 做下載前的準(zhǔn)備,包括連接資源,實(shí)現(xiàn)多線程,分配每個(gè)線程的下載量。 LoadProperty: 保存當(dāng)界面關(guān)閉時(shí)的下載信息和讀取界面打開時(shí)的下載信息。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 11 系統(tǒng)流程圖 系統(tǒng)整體運(yùn)行流程圖:如圖 所示: 開 始查 看 是 否 有 未完 成 任 務(wù)監(jiān) 聽 主 界 面 事 件否導(dǎo) 入 未 完 成 的 下 載任 務(wù)是新 建 下 載 新 建 下 載 任 務(wù)開 始 下 載 開 始 下 載 任 務(wù)否是是暫 停 下 載否暫 停 下 載 任 務(wù)是退 出是繼 續(xù) 監(jiān) 聽 頁 面 事 件否保 存 頁 面 未 完 成 下載 信 息退 出輸 入 U R LU R L 是 否 可用否選 擇 存 儲(chǔ) 位 置是選 擇 線 程確 定 下 載創(chuàng) 建 下 載 實(shí) 體 進(jìn) 行下 載是否刪 除 下 載 刪 除 下 載 任 務(wù)否否創(chuàng) 建 下 載 線 程停 止 下 載 線 程刪 除 下 載 實(shí) 體 , 關(guān)閉 下 載 線 程圖 系統(tǒng)流程圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 12 系統(tǒng)結(jié)構(gòu)用例圖 根據(jù)系統(tǒng)需求分析,系統(tǒng)需實(shí)現(xiàn)新建下載、暫停下載、開始下載、刪除下載四個(gè)基本功能。同時(shí)啟動(dòng)程序時(shí)應(yīng)導(dǎo)入未完成任務(wù)的下載信息。 : Eclipse 。 本應(yīng)用使用的開發(fā)平臺(tái)為 Win7,所使用的開發(fā)環(huán)境為 ,所用到的開發(fā)工具包有 。JAVA_HOME 為java 的安裝路徑,如: C:\Program Files\Java\?!珻lasspath中加入“ .?!? 最后在 DOS 下進(jìn)行測試:輸入 java 、 javac、 java –version 等命令,分別輸出如圖 ,圖 ,圖 則表示配置成功。 Eclipse 在使用時(shí)會(huì)自動(dòng)檢測 Java 運(yùn)行時(shí)環(huán)境。如下是 MainFrame 模塊的結(jié)構(gòu)圖 : 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 15 下 載 器 界 面新 建 下 載 按 鈕開 始 下 載 按 鈕暫 停 下 載 按 鈕 刪 除 下 載 按 鈕觸 發(fā) 新 建 下 載 事 件 觸 發(fā) 開 始 下 載 事 件觸 發(fā) 暫 停 下 載 事件觸 發(fā) 刪 除 下 載 事 件 圖 MainFrame 模塊結(jié)構(gòu)圖 主界面設(shè)計(jì) MainFrame 可視化界面主要定義了如下一些組建: JToolBar :用于裝載(容納)按鈕; JButton :定義新建下載,開始下載,暫停下載等按鈕; JTable:以表格形式顯示下載條目; JScrollPane :定義帶滾動(dòng)條的文本區(qū)域,用于裝載 JTable; JProgressBar:定義一個(gè)下載進(jìn)度條。如圖 所示: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 圖 菜單項(xiàng) 定義主界面關(guān)鍵代碼: private void initFrame(){ (900,600)。//居中顯示 (EXIT_ON_CLOSE)。 } private void initComponent(){ horizon_bar=new JToolBar()。 start_btn= new JButton(開始下載 )。 del_btn = new JButton(刪除下載 )。 =new DownTableModel(table)。 ().getColumn(4).setCellRenderer(new DownCellRenderer())。 } private void addComponent(){ //綁定組件 (new_btn)。 (pause_btn)。 ()。 (scrollPane,)。 (100)。// 設(shè)置進(jìn)度條的最小值為 0 ()。 //設(shè)置進(jìn)度條水平放置 ()。 } MainFrame 組件監(jiān)聽事件 MainFrame 中定義了幾個(gè)按鈕,點(diǎn)擊每個(gè)按鈕都會(huì)產(chǎn)生相應(yīng)的動(dòng)作,這就用到了我們的監(jiān)聽事件。//添加一個(gè)新的下載 } })。//得到所有下載條目個(gè)數(shù) for(int i=0。i++){ if((i)){ //暫停選中下載項(xiàng) (i)。 //開始下載監(jiān)聽事件 (new Ac
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1