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

正文內(nèi)容

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

2025-09-04 20:16上一頁面

下一頁面
  

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