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

正文內(nèi)容

計算機專業(yè)畢業(yè)論文)基于java的http斷點續(xù)傳的設(shè)計與實現(xiàn)-資料下載頁

2024-11-06 01:15本頁面

【導(dǎo)讀】始,讓人們頭痛不已。Java語言的一大特性就是內(nèi)置對多線程的支持。多線程是指同時存在幾個執(zhí)行體,按。能、能同時處理多個任務(wù)的功能強大的應(yīng)用程序。一些同時運行的線程需要共享數(shù)據(jù),因此。一個基于HTTP協(xié)議的支持多線程斷點續(xù)傳的下載程序。模塊以及系統(tǒng)幫助模塊組成。

  

【正文】 public Map getMap(){ return 。 } public DownloadStartCore getTask(int identifier) { return (identifier)。 } public boolean isCellEditable(int row, int col) { return columnArray[col].isEditable。 } public Class getColumnClass(int modelIndex) { return columnArray[modelIndex].columnClass。 } public int getColumnCount() { return 。 } public String getColumnName(int modelIndex) { return columnArray[modelIndex].columnName。 } } 其中 getTask(),addTask()方法就是對任務(wù)項目的管理,這樣可 以方便的實現(xiàn)下載任務(wù)的管理 。同理也是通過類似的方法實現(xiàn) 已下載任務(wù)的管理 。 下載任務(wù)刪除 下載中的任務(wù)刪除,在表格數(shù)據(jù)模型中有 一個集合是專門保存 任務(wù)類的,所以需要對這個任務(wù)類進行操作,用以刪除 下載任務(wù) ,同時再停止 下載線程的進行從而達到停止下載的目的 ,代碼如下: /** * 刪除下載任務(wù) * @param row 任務(wù)在表格中對應(yīng)的行號 */ public void removeTask(int row) { model = (MyTableModel) ()。 //刪除表格中對應(yīng)的行 (row)。 //獲取任務(wù)管理類 core = (row)。 //停止 所有下載活動 ().setStop(true)。 ().setStop(true)。 FileSplitter[] splitters = ().getFileSplitters()。 for (int i = 0。 i 。 i++) { splitters[i].setStop(true)。 } //刪除該任務(wù) (row)。 } 系統(tǒng)實現(xiàn) 系統(tǒng)主界面 單擊運行程序會出現(xiàn)下圖的界面,便是系統(tǒng)的主界面,可以做的操作是新建下載任務(wù),查看以下載的任務(wù) ,界面截圖如下: 系統(tǒng)主界面圖 新建下載任務(wù) 界面 步驟一: 點擊菜單,然后點擊新建 下載界面圖 步驟二:在彈出框中輸入下載地址 URL,保存的文件名,保存的絕對路徑 ,如果需要清楚數(shù)據(jù)則點清楚數(shù)據(jù),如果是要開始下載則點開始下載 。 新建任務(wù)圖 下載中的界面 下載中的界面如 圖 ,點擊暫??梢詴和H蝿?wù)下載 。 下載中界面圖 (1) 如果下載在暫停中可以點擊開始 如圖 下載中界面圖 (2) 6. 結(jié) 論 經(jīng)過測試,系統(tǒng)能夠很好的運行,通 過新建任務(wù),能夠?qū)崿F(xiàn)下載任務(wù),并且通過界面的暫停任務(wù)可以實現(xiàn) 下載中暫停任務(wù), 通過再次的點擊可以繼續(xù)下載任務(wù), 下載過程中緩沖保存數(shù)據(jù),對硬盤保護, 并且 實現(xiàn)了實時存檔當(dāng)前任務(wù) ,使得 就算斷電也 能再次 運行 時繼續(xù)下載該任務(wù) ,自動判斷存檔文件是否存在 。 通過系統(tǒng)的設(shè)計, 本人感觸最深的是加深了對軟件開發(fā)過程的理解,熟悉了利用 MVC 實現(xiàn)界面模塊 劃分開來的思路 , HTTP 協(xié)議 ,也更加深入理解了 多線程任務(wù) 設(shè)計中常見問題和其設(shè)計的意義。 本文在詳細分析 HTTP斷點續(xù)傳原理及多線程技術(shù) 基礎(chǔ)上,設(shè)計并實現(xiàn)了 JAVA斷點續(xù)傳的 簡易版本。論文的主要工作包括以下幾個方面: 1. 深入了解接 Java 線程,對線程的機制理解更進一步的加深 ; 2. 深入剖析了 HTTP 斷點續(xù)傳的 工作原理 ; 3. 確定了系統(tǒng)的模型, 對系統(tǒng)構(gòu)架有了一定的了解 ; 4. 對 HTTP 斷點續(xù)傳下載器進行編碼 ,實現(xiàn)了大部分功能 。 經(jīng)過 數(shù) 月的設(shè)計和開發(fā),下載 系統(tǒng)基本開發(fā)完畢,但是由于畢業(yè)設(shè)計時間較短,所以該系統(tǒng)還有許多不盡如人意的地方, 比如下載時多下載 線程 顯示的管理, 注冊入系統(tǒng)注冊表 。在我的進一步工作中,我將對這些問題進行完善。 參考文獻 [1] 張運凱,劉宏忠,郭宏剛. FTP 搜索引擎的設(shè)計與實現(xiàn) [M], 2020 [3] 王曉東. 計算機算法設(shè)計與分析 [M]. 電子工業(yè)出版社, 2020 [4] 王方明. FTP 總司令 [M].北京大學(xué)出版社. 2020 [5] 范曉光,王元元. 互聯(lián)網(wǎng)應(yīng)用與技術(shù) [M]. 機械工業(yè)出版社, 2020 [6] 劉志勇,郭聰輝. 網(wǎng)絡(luò)服務(wù)器安全配置詳解 [M]. 電子工業(yè)出版社, 2020 [7] 謝希仁. 計算機網(wǎng)絡(luò)(第四版) [M]. 大連理工出版社, 2020 [8] 吳偉名. 數(shù)據(jù)結(jié)構(gòu) [M]. 清華大學(xué)出版社, 2020 [9] 譚浩強,張基溫等. C語言程序設(shè)計教程 [M]. 高等教育出版社, 1984 [10] 張濤等譯,謝希仁校. WRichard Stevens, TCPIP詳解卷 2: 實現(xiàn) [M] [11] 張長青. 淺談第四層交換機技術(shù)及應(yīng)用 [J]. 通信世界, 2020 [12] 彭膨 . 計算機網(wǎng)絡(luò)基礎(chǔ) [M]. 機械工業(yè)出版社, 2020 年 8月第 1 版 [13] 王珍玲 . 使用軟件工程教程 [M]. 中國勞動社會保障出版社, 2020 年 8月 [14] Scott Oaks, Henry Wong. O39。Reilly. Java Threads, Third Edition ,2020 年 9月 附錄 1 部分核心 源 代碼: 啟動下載任務(wù)線程 類: package 。 import 。 import 。 import 。 import .*。 import .*。 import 。 public class DownloadStartCore extends Thread { private DialogGUIImpl impl。 private JTable downloadTable。 private DownloadWorker worker。 private SpeedThread speedThread。 private DownloadData data。 private SiteFileFetch fetch。 private MyTableModel model。 private int chunk = 10。 public DownloadStartCore(DialogGUIImpl impl, String desURL, String fileName, String filePath, int chuck) { = impl。 = ()。 model = (MyTableModel) ()。 data = new DownloadData(desURL, fileName, filePath)。 } public void run() { long length = getFileLength()。 if (0 length) { (length)。 fetch = new SiteFileFetch(impl,data, chunk)。 Thread fetchThread = new Thread(fetch)。 ()。 setTable()。 } } private void setTable() { worker = new DownloadWorker(model, data)。 int row = ()。 ((new StringBuilder(String .valueOf(() / 1024L / 1024L))).append(MB) .toString(), row 1, 1)。 speedThread = new SpeedThread(data, model)。 Thread thread = new Thread(speedThread, ())。 ()。 ()。 } /** * 獲取文件長度 * * @return 文件長度 */ private long getFileLength() { int responseCode = 0。 long fileSize = 1。 try { URL url = new URL(())。 (run)。 HttpURLConnection connection = (HttpURLConnection) url .openConnection()。 responseCode = ()。 if (responseCode 400) { String contentLength。 contentLength = (ContentLength)。 if (null != contentLength || !()) { fileSize = (contentLength)。 return fileSize。 } else { return 2。 } } } catch (MalformedURLException e) { ()。 } catch (IOException e) { ()。 } return fileSize。 } public DownloadWorker getWorker() { return 。 } public SpeedThread getSpeedThread() { return 。 } public SiteFileFetch getSiteFileFetch() { return 。 } public DownloadData getData() { return 。 } public MyTableModel getModel() { return 。 } public SiteFileFetch getFetch() { return fetch。 } public void setFetch(SiteFileFetch fetch) { = fetch。 } public int getChunk() { return chunk。 } public DialogGUIImpl getImpl(){ return 。 } public void setWorker(DownloadWorker worker) { = worker。 } public void setSpeedThread(SpeedThread speedThread) { = speedThread。 } } 更新 ProgressBar 的而重寫的 SwingWork: package 。 import 。 import 。 import 。 import 。 public class DownloadWorker extends SwingWorkerString, String { private static final int Column_Progress = 2。 private static final int Column_Statue = 4。 private MyTableModel model。 private int row。 private DownloadData data。 private boolean isStop = false。 public DownloadWorker(MyTableModel model,DownloadData data,int row){ = row1。 = model。 = data。 } public DownloadWork
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1