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

正文內(nèi)容

基于net的網(wǎng)絡(luò)下載工具設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-資料下載頁

2025-06-27 18:09本頁面
  

【正文】 t i = 0。 i 。 i++) { string link = arr[i]。 bool add = true。 Uri uri。 if (!(add = (link, , out uri)) amp。amp。 !clipboardMode) { add = true。 newInputText = link。 } if (add) {中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 21 頁 DownloadProperties p = new DownloadProperties()。 InitializeDownload(p, null, uri)。 (p)。 } } if ( 0) { RequiredActions actions = 。 if (IsRenameGenerated(data)) actions |= 。 return new AnalysisResult { Actions = actions, Downloads = list, InputValue = newInputText }。 } else return new AnalysisResult { Actions = , InputValue = (\r\n, ) }。 } else return RefreshLinkData(data)。 }通過對(duì) 協(xié)議的了解,知道通過對(duì)它的請(qǐng)求頭進(jìn)行設(shè)置,就可以獲取到遠(yuǎn)程文件的指定部分,而不用從頭開始下載。利用這個(gè)特性設(shè)計(jì)一個(gè)多線程下載的原型出來。要進(jìn)行多線程下載,主要實(shí)現(xiàn)的是為每個(gè)線程分配一個(gè)指定范圍的數(shù)據(jù)下載。 功能說明在多線程下載過程中,需要讓每一個(gè)線程都指向指定資源的一部分,且不重復(fù),如何為每一個(gè)下載線程分配它指向的特定部分就是這個(gè)模塊所要完成的任務(wù)。中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 22 頁 設(shè)計(jì)說明確定了采用分塊的形式進(jìn)行任務(wù)的分配,那要考慮的問題就只有如何分塊了,如何分配才能準(zhǔn)備無誤,并且保證各個(gè)下載線程所要下載的任務(wù)更合理。本系統(tǒng)采用的是平均分配的方法。就是為每一個(gè)下載線程分配盡可能相同的字節(jié)數(shù),在這個(gè)過程中我們得指定下載任務(wù)相對(duì)于資源起點(diǎn)的偏移量及下載的長(zhǎng)度。 設(shè)計(jì)流程新的下載任務(wù)取得文件的大小 , 判斷是否需要下載加速 ( 分段 )需要分段下載 不需要分段下載主線程創(chuàng)建下載線程 , 并且分配任務(wù)開始下載主線程開始下載下載完成或失敗 , 觸發(fā)相應(yīng)的事件圖 41 線程任務(wù)分配流程圖中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 23 頁H T T P 請(qǐng)求發(fā)送到已驗(yàn)證的 U R L讀取返回的 H T T P 報(bào)文是否需要 U R L 重定向?qū)υ?U R L 指定的資源進(jìn)行下載獲取定向后的資源 U R L開始下載 ( 多線程或單線程 )接收 U I 命令執(zhí)行 U I 命令下載完成或失敗觸發(fā)下載完成或失敗事件圖 42 創(chuàng)建下載任務(wù)流程圖任務(wù)下載模塊是本系統(tǒng)的核心,在任務(wù)運(yùn)行過程中主要的時(shí)間也是在花這一塊,它的設(shè)計(jì)質(zhì)量,會(huì)對(duì)軟件的效率,占用資源的大小,軟件的可靠性及可用性有很大的影響。就拿軟件的可用性來說,因?yàn)樵谙到y(tǒng)的下載過程中,讀取出來的長(zhǎng)度是隨機(jī)的,而且我們還要關(guān)心著本線程的下載范圍,因此如果未對(duì)其中的各個(gè)細(xì)節(jié)進(jìn)行考慮,很容易就會(huì)出現(xiàn)讀臟數(shù)據(jù)的情況,導(dǎo)致最終下載過來的數(shù)據(jù)無法使用。中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 24 頁 功能說明創(chuàng)建完任務(wù)后可以開始進(jìn)行下載操作了。在這個(gè)模塊中,要使用線程技術(shù)實(shí)現(xiàn)一個(gè)可重用的,較高效的實(shí)現(xiàn)程序。主要功能就是能讀取出指定資源相應(yīng)偏移量的數(shù)據(jù),并調(diào)用文件操作模塊將下載的數(shù)據(jù)保存到相應(yīng)文件中去。 設(shè)計(jì)說明任務(wù)下載的重點(diǎn)在于多線程進(jìn)行下載時(shí)對(duì)下載的線程進(jìn)行有效的控制,以及對(duì)當(dāng)前下載到得數(shù)據(jù)量實(shí)時(shí)進(jìn)行統(tǒng)計(jì)友好的反應(yīng)到 UI 上,這就是多線程任務(wù)下載的主要問題。 核心流程多線程下載一個(gè)文件主線程 下載線程分配任務(wù)給下載線程啟動(dòng)下載線程進(jìn)行下載進(jìn)行數(shù)據(jù)下載接收 U I 消息命令發(fā)送到下載線程執(zhí)行主線程命令下載完成或失敗接收下載線程事件線程結(jié)束觸發(fā)事件給出 U I 提示 , 對(duì)事件進(jìn)行處理圖 43 多線程下載任務(wù)核心流程中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 25 頁1) 子線程下載流程被主線程啟動(dòng)開始下載一段數(shù)據(jù)嘗試打開該連接打開成功 , 開始下載打開不成功 , 進(jìn)行重試重試成功 重試不成功關(guān)閉連接 , 該段下載失敗下載完成 , 線程生命自動(dòng)結(jié)束圖 44 下載線程執(zhí)行流程事件機(jī)制在這個(gè)設(shè)計(jì)中非常的重要,所有關(guān)于線程下載完成,任務(wù)下載完成的時(shí)候都是通過事件被觸發(fā)的方式完成。這種機(jī)制的好處就是不用開啟新的線程去監(jiān)視下載的情況,實(shí)時(shí)性上要比采用監(jiān)視線程要好很多,在消耗的資源上也比開監(jiān)視線程要小很多,僅在事件被觸發(fā)時(shí)才進(jìn)行相應(yīng)的操作。 功能說明在任務(wù)下載過程中,我們要進(jìn)行一系列的操作如:下載文件的保存,根據(jù)下載線程的完成情況判斷文件是否下載完畢等,所以本系統(tǒng)中我設(shè)計(jì)了一個(gè)監(jiān)聽器用來監(jiān)聽事件的變化。在初始化任務(wù)和下載線程時(shí)為它們注冊(cè)監(jiān)聽器,當(dāng)并在事件處理代碼中對(duì)相應(yīng)的事件進(jìn)行響應(yīng)。事件處理機(jī)制在本設(shè)計(jì)中占有很大的比重。中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 26 頁 事件核心代碼 /// summary /// 下載事件 /// /summary public sealed class DownloadEventArgs : EventArgs { region Constrution public DownloadEventArgs(DownloadProperties download) { Download = download。 } endregion region Properties public DownloadProperties Download { get。 private set。 } endregion}下載完成后出發(fā)相應(yīng)的事件 if ( == ) OnDownloadCompleted(new DownloadEventArgs())。 //下載完成觸發(fā)一個(gè)下載完成事件 else if ( == ) OnDownloadFailed(new DownloadEventArgs())。 //下載失敗觸發(fā)一個(gè)下載失敗事件本設(shè)計(jì)基本上符合 MVC 的設(shè)計(jì)模式,而作為 Control 的部分,也是系統(tǒng)的核心部分。系統(tǒng)中所有的命令都是通過下載控制器進(jìn)行轉(zhuǎn)發(fā),而 GUI 界面也就是通過下載控制器與網(wǎng)絡(luò),本地文件之間進(jìn)行操作,從而實(shí)現(xiàn)系統(tǒng)的一個(gè)個(gè)功能。 功能說明下載控制器在本設(shè)計(jì)中處于核心的地位,所有來自 GUI 界面的請(qǐng)求,還有底層網(wǎng)絡(luò)操作及文件的操作都通過控制器進(jìn)行協(xié)調(diào)工作。控制器在整個(gè)系統(tǒng)的運(yùn)行中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 27 頁周期中都存在著作用,在應(yīng)用程序剛剛啟動(dòng)時(shí),它需要讀取系統(tǒng)配置及上一次下載的斷點(diǎn)信息。所有對(duì)于下載的操作都要通過它來轉(zhuǎn)發(fā),甚至每一次斷點(diǎn)的保存都是通過它完成。所以 Control 部分的設(shè)計(jì)師 MVC 中最為重要的一部分。 主要操作 public void RemoveDownload(Guid key) //移除指定的下載 public IEnumerableGuid RemoveAllSuccessful() //移除所有的已成功下載 public void PauseDownload(Guid key) //暫停下載public void StopDownload(Guid key) //停止正在下載public void StartDownload(Guid key) //開始(恢復(fù)下載) public void StopQueue() //停止所有正在下載(一個(gè)下載任務(wù)隊(duì)列) 功能流程主要功能流程:命令恢復(fù)任務(wù) 下載控制器 停止任務(wù)開始任務(wù) 暫停任務(wù) 移除任務(wù)圖 45 下載控制器主要任務(wù)圖從流程圖上我們可以看出,下載控制器主要功能是實(shí)現(xiàn)控制命令的轉(zhuǎn)發(fā),是嚴(yán)格按照 MVC 模式 C 的定義來進(jìn)行的。作為一個(gè)要實(shí)現(xiàn)斷點(diǎn)續(xù)傳的功能的軟件來說,一個(gè)斷點(diǎn)記錄的文件是必不可少的。而這個(gè)文件的實(shí)現(xiàn)技術(shù)多種多樣。運(yùn)用什么技術(shù)?如何設(shè)計(jì)一個(gè)合理的斷點(diǎn)保存機(jī)制對(duì)于本系統(tǒng)來說就變得尤為重要,怎么在系統(tǒng)中實(shí)現(xiàn)斷點(diǎn)的記錄?斷點(diǎn)記錄的是些什么信息?斷點(diǎn)是保存在什么文件中?這都是這一節(jié)要考慮的問題。中國礦業(yè)大學(xué) 2022 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 28 頁 斷點(diǎn)記錄文件的設(shè)計(jì)斷點(diǎn)記錄是實(shí)現(xiàn)斷點(diǎn)續(xù)傳中非常關(guān)鍵的一步,下載線程在下載過程中可能會(huì)出現(xiàn)各種各樣的問題導(dǎo)致下載中斷,設(shè)置斷點(diǎn)保存就可以解決這個(gè)問題。但這些異常發(fā)生是隨機(jī)的,未知的,這就給我們?cè)O(shè)置斷點(diǎn)記錄點(diǎn)發(fā)出了挑戰(zhàn),在本設(shè)計(jì)中實(shí)現(xiàn)了斷點(diǎn)的有效記錄,文件斷點(diǎn)文件將被保存到一個(gè)自定義的 XML 文件當(dāng)中,并確定了斷點(diǎn)文件需要記錄了些什么信息的功能。 設(shè)計(jì)說明例如記錄的一個(gè)斷點(diǎn)如下:Download EnabledFields= Url= Adapter=defaultGeneralOptions EnabledFields= DownloadPath=C:\Documents and Settings\mutianhong\My Documents\WebDownload\Downloads MaximumDownloadConnections=8 Priority=1 Timeout=30000 ErrorLimit=500 RetryTime=3000 ManualStart=False /ProtocolOptionsHttpOptions EnabledFields= ProtocolVersion=1 KeepAlive=True AllowAutoRedirect=True MaximumRedirections=50 SendGet=False /FtpOptions EnabledFields= UsePassiveMode=True KeepAlive=True EnableSsl=False //ProtocolOptionsState PreviousStatus=32 ResumeMode=True FileLocation=C:\Documents and Settings\mutianhong\My Documents\WebDownload\Downloads\SegmentsSegment Id=1 Offset=0 Length=75343273 Read=4779893 //Segments/State/DownloadEnabledFields 文件的源地址DownloadPath 下載到目錄MaximumDownloadConnections 下載時(shí)最大線程數(shù)目Priority 優(yōu)先級(jí)ProtocolOptions/ProtocolOptions之間表示該文件的下載協(xié)議State /State之
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1