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

正文內(nèi)容

基于http的多線程下載器畢業(yè)論文(更新版)

  

【正文】 AccessFile rand=null。 } } 創(chuàng)建線程并分配每個(gè)線程下載塊:根據(jù)用戶選定的下載線程數(shù)創(chuàng)建等量的下載線程并分配每個(gè)線程下載塊的大小。 }else{ //分配每個(gè)線程的下載起始點(diǎn)和結(jié)束點(diǎn) [i]=new DownloadThread(this, i, i*dataLen, i*dataLen+dataLen,ran_i)。i。 } DownloadThread 模塊的設(shè)計(jì) DownloadThread 模塊主要用于進(jìn)行具體下載的操作,如創(chuàng)建每個(gè)線程對(duì)目的文件連接,設(shè)定每個(gè)線程不同時(shí)刻的下載開始點(diǎn)和結(jié)束點(diǎn),同時(shí)對(duì) I/O 流進(jìn)行操作,及時(shí)存儲(chǔ)文件的下載信息。 = new BufferedInputStream(())。amp。 } catch (FileNotFoundException e) { ()。 } catch (IOException e) { } } 當(dāng)系統(tǒng)啟動(dòng)時(shí) ,從文件中導(dǎo)入未完成下載任務(wù)。 i++) { //將下載任務(wù)信息還原成 D。 // 創(chuàng)建文件輸入流 fis = new FileInputStream(new File(E:/Workspaces/Eclipse/FinishDownload/properties/))。 (count, + ())。 //將讀取內(nèi)容寫入文件 (b, 0, len)。 int len = 0。 //bytes為一個(gè)字符串: bytes=+(+)+ 。 } 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 29 return 。 } } } 啟動(dòng) 線程的下載 ,關(guān)鍵代碼如下: //開始下載 public void beginDownload(){ for(int i=0。 // 獲得線程每塊下載大小 long dataLen=+1。 [0]=new DownloadThread(this, 0, , 0, ,rand)。 //設(shè)置請(qǐng)求頭 Range,用于分塊下載數(shù)據(jù) (Range, bytes=0)。再根據(jù)響應(yīng)嗎的值選擇下載模式。 } ()。 //定義按鈕的監(jiān)聽事件 (new Cancel_AND_Sure_Lisener())。 (88, 20, 460,30)。 (null)。 thread_count_box=new JComboBox()。 //更新表格 } } NewDownload 模塊設(shè)計(jì) 模塊流程分析 根據(jù)需求分析 ,當(dāng)用戶點(diǎn)擊新建下載按鈕,則系統(tǒng)彈出一個(gè)新建下載對(duì)話框,里面包含一個(gè)輸入 url 的文本框,一個(gè)保存地址的文本框,一個(gè)保存文件名的文本框。//更新表格 i=()。同樣需要更新的還有:連接線程狀態(tài),是否完成,下載百分比, 剩余時(shí)間等。 return true。 } public int getColumnCount() { //得到表格總的列數(shù) return 。 DownTableModel的實(shí)現(xiàn)是繼承一個(gè) AbstractTableModel類,繼承這個(gè)類必須實(shí)現(xiàn)它的一些方法: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 19 getRowCount()、 getColumnCount()、 getValueAt()、 getColumnName();同時(shí)我們還要為表格的每一個(gè)列定義一個(gè)列名(定義一個(gè)名字的集合),同時(shí)將名字的集合傳到 getColumnName()這個(gè)方法,內(nèi)部會(huì)自動(dòng)為每一列分配一個(gè)類名。irow。 } } 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 18 } })。 return this。 (horizon_bar,)。 ()。 c=()。 圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 圖 圖 第二步:安裝 Eclipse 從網(wǎng)站 Eclipse 版本,解壓至相應(yīng)的位置。 : JDK。 DownloadThread: 實(shí)現(xiàn)下載,并進(jìn)行數(shù)據(jù)流的 I/O 操作。如果在一段很長(zhǎng)的下載時(shí)間段中出現(xiàn)了意外情況,比如電源意外被切斷、網(wǎng)絡(luò)中斷、或是操作系統(tǒng)故障導(dǎo)致系統(tǒng)重新啟動(dòng)。 采用多線程可以很明顯的提高 CPU 的利用率。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程 ,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。 Swing開發(fā)人員只用很少的代碼就可以利用 Swing 豐富、靈活的功能和模塊化組件來(lái)創(chuàng)建優(yōu)雅的用戶界面。 500內(nèi)部服務(wù)器錯(cuò)誤。 307臨時(shí)重定向。 204無(wú)內(nèi)容。 100繼續(xù)。該協(xié)議使用可靠的 TCP 連接,默認(rèn)端口是 80; Http 請(qǐng)求和響應(yīng) HTTP 協(xié)議基于客戶端 /服務(wù)器模式,客戶端主動(dòng)發(fā)出 HTTP 請(qǐng)求,服務(wù)器接收 HTTP 請(qǐng)求,返回 HTTP 響應(yīng)結(jié)果。 第二章,系統(tǒng)開發(fā)相關(guān)概念和理論。 本課題就是基于上述背景而開展的。 Java。很顯然多線程相對(duì)于單線程而言對(duì) CPU 的利用率更高,這樣更有利于提高下載的速度。 科 技 大 學(xué) 畢 業(yè) 設(shè) 計(jì)( 論 文 ) 題目 基于 HTTP 的多線程下載器 作者 學(xué)院 專業(yè) 學(xué)號(hào) 指導(dǎo)教師 科 技 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)任務(wù)書 1 設(shè)計(jì)(論文)題目及專題: 基于 HTTP 的多線程下載器 2 學(xué)生設(shè)計(jì)(論文)時(shí)間:自 20xx 年 1 月 5 日開始至 20xx 年 6 月 6 日止 3 設(shè)計(jì)(論文)所用資源和參考資料: [1] 李鐘尉,馬文強(qiáng),陳丹丹 .Java 從入門到精通 [M].清華大學(xué)出版社,20xx 年 [2] 孫衛(wèi)琴 .Java 面向?qū)ο缶幊蹋?Java 開發(fā)專家) [M].電子工業(yè)出版社, 20xx年 [3] 克里舍納姆塞 ,范群波 .Web 協(xié)議與實(shí)踐( 網(wǎng)絡(luò)協(xié)議緩存技術(shù)和流量測(cè)量) .科學(xué)教育出版社 4 設(shè)計(jì)(論文)應(yīng)完成的主要內(nèi)容: 設(shè)計(jì)并實(shí)現(xiàn)基于紅彤彤批協(xié)議的多線程下載器,實(shí)現(xiàn)了斷點(diǎn)續(xù)傳、回收站、懸浮窗等基本功能。當(dāng)用戶選擇多線程進(jìn)行下載,下載器就會(huì)將下載資源按線程數(shù)目進(jìn)行分片,然后同時(shí)將這些片下載到本地。downloader。當(dāng)下載器采用多線程模式,實(shí)現(xiàn)在網(wǎng)絡(luò)環(huán)境下對(duì)資源的同步下載,可以明顯提高對(duì) CPU 和帶寬的利用率,最終實(shí)現(xiàn)下載速度的提高。主要介紹本課題的背景和意義。湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 5 第二章 應(yīng)用開發(fā)相關(guān)技術(shù)和理論 HTTP Http 簡(jiǎn)介 HTTP 是 Hyper Text Transportation Protocol(超文本傳輸協(xié)議 )的縮寫,是一種詳細(xì)規(guī)定了瀏覽器和萬(wàn)維網(wǎng)服務(wù)器之間互相通信的規(guī)則,通過(guò)因特網(wǎng)傳送萬(wàn)維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議,位于應(yīng)用層。客戶端在收到常規(guī)響應(yīng)之前,應(yīng)準(zhǔn)備接收一個(gè)或多個(gè) 1xx 響應(yīng)。 203非權(quán)威性信息。 304未修改。 5xx服務(wù)器錯(cuò)誤 服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求。它以抽象窗口工具包( AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。另外,線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。在此單線程的工作模式下,如果把CPU 看作是一共有 100 個(gè)時(shí)間片的話, CPU 可能一直都只是花了其中的 10 個(gè)時(shí)間片來(lái)處理當(dāng)前進(jìn)程所要做的事情,只是用到了 CPU 的 10%的時(shí)間片,而其他時(shí)間都白白浪費(fèi)了,當(dāng)然,實(shí)際上 CPU 的工作模式還是做完一件事以后再去做另一件事,只是 CPU 的處理速度非???,很快就處理完成所請(qǐng)求的情事。 由于下載資源的時(shí)間長(zhǎng)短不一,可能很短也可能比較長(zhǎng)。 Download: 做下載前的準(zhǔn)備,包括連接資源,實(shí)現(xiàn)多線程,分配每個(gè)線程的下載量。 : Eclipse ?!? 最后在 DOS 下進(jìn)行測(cè)試:輸入 java 、 javac、 java –version 等命令,分別輸出如圖 ,圖 ,圖 則表示配置成功。//居中顯示 (EXIT_ON_CLOSE)。 =new DownTableModel(table)。 ()。 //設(shè)置進(jìn)度條水平放置 ()。i++){ if((i)){ //暫停選中下載項(xiàng) (i)。 for(int i=0。 //全局 TableModel } DownTableModel 模塊設(shè)計(jì) 模塊 UI 設(shè)計(jì) DownTableModel即一個(gè)顯示下載條目表格模型。 } //得到表格總的行數(shù) public int getRowCount() { return ()。 //添加一個(gè)下載項(xiàng) //AbstractTableModel里定義的函數(shù),更新表格 fireTableDataChanged()。如設(shè)定文件大小。 //給表格設(shè)定值 fireTableDataChanged()。 fireTableDataChanged()。 NewDownload 模塊流程圖如圖 所示: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 22 用戶點(diǎn)擊新建下載按鈕輸入U(xiǎn)RLURL是否合法選擇存儲(chǔ)位置是否輸入文件名選擇下載線程數(shù)目確定下載是創(chuàng)建下載實(shí)體回到主界面否 圖 NewDownload 流程圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 23 模塊 UI 設(shè)計(jì) NewDownload 模塊可視化界面主要定義了如下一些組建: JLabel :用于裝載(容納)按鈕和文本框; JButton :定義瀏覽,確定,取消等按鈕; JTextField:定義用于輸入數(shù)據(jù)的文本框; JComboBox:定義選擇線程數(shù)的下拉框; 如圖 所示: 圖 新建下載 NewDownload 模塊界面關(guān)鍵代碼如下 : Times New Roman (new TitledBorder(新建下載 ))。 cont = ()。 (88, 180, 50, 30)。 (440, 200, 70, 30)。//退出對(duì)話框 } else if(確 定 .equals(().trim())){ //點(diǎn)擊確定按鈕;創(chuàng)建下載對(duì)象 if(!.equals(())){ //判斷是否以 :開頭if((()){ if(creatDownload()){ //添加一個(gè)下載 ()。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 26 模塊流程 分析 在 Download 模塊中,系統(tǒng)首先要取得資源的網(wǎng)絡(luò)連接,然后獲得其響應(yīng)碼。//打開下載連接 HttpURLConnection Conn=(HttpURLConnection)openCon。 //構(gòu)建文件輸入流 rand=new RandomAccessFile(, rw)。關(guān)鍵代碼如下: // 創(chuàng)建和分配線程 public void allocateThreads(){ 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 28 // 創(chuàng)建 countOfThread 個(gè)線程 =new DownloadThread []。 } } catch (FileNotFoundException e) { ()。i++){ =[i].pleted+。 此模塊的關(guān)鍵點(diǎn)在于設(shè)定 HTTP 請(qǐng)求頭(用于分塊下載): (RANGE,bytes )。 //定義緩沖區(qū)間 byte[] b = new byte[1024]。 ) { 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 30 //synchronized 關(guān)鍵字用于同步每個(gè)線程下載 synchronized () { = + len。 } // 創(chuàng)建 properties集合,用于存儲(chǔ)數(shù)據(jù) Properties pro = new Properties()。關(guān)鍵代碼如下: public static void loadDownInfo() throws Exception { FileInputStream fis = n
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1