男人天堂日韩,中文字幕18页,天天伊人网,成人性生交大片免费视频

斷點(diǎn)續(xù)傳軟件研究論文

時(shí)間:2021-04-16 14:34:39 論文 我要投稿

斷點(diǎn)續(xù)傳軟件研究論文

  在如今的網(wǎng)絡(luò)應(yīng)用中,文件的傳送是重要的功能之一,也是共享的基礎(chǔ)。一些重要的協(xié)議像HTTP,F(xiàn)TP等都支持文件的傳送。尤其是FTP,它的全稱就是“文件傳送協(xié)議”,當(dāng)初的工程師設(shè)計(jì)這一協(xié)議就是為了解決網(wǎng)絡(luò)間的文件傳送問(wèn)題,而且以其穩(wěn)定,高速,簡(jiǎn)單而一直保持著很大的生命力。作為一個(gè)程序員,使用這些現(xiàn)有的協(xié)議傳送文件相當(dāng)簡(jiǎn)單,不過(guò),它們只適用于服務(wù)器模式中。這樣,當(dāng)我們想在點(diǎn)與點(diǎn)之間傳送文件就不適用了或相當(dāng)麻煩,有一種大刀小用的意味。所以一款簡(jiǎn)單有效,且具備多線程斷點(diǎn)續(xù)傳的軟件就成為了必要。

斷點(diǎn)續(xù)傳軟件研究論文

  1 引言

  以往我們軟件開(kāi)發(fā)的程序大多是單線程的,即一個(gè)程序只有一條從頭至尾的執(zhí)行線索。然而現(xiàn)實(shí)世界中的很多過(guò)程都具有多條線索同時(shí)動(dòng)作的特性。例如,我們可以一邊看電視,一邊活動(dòng)胳膊,如果不容許這樣做,我們會(huì)感覺(jué)很難受。再如一個(gè)網(wǎng)絡(luò)服務(wù)器可能需要同時(shí)處理多個(gè)客戶機(jī)的請(qǐng)求等。C++語(yǔ)言的一大特性就是內(nèi)置對(duì)多線程的支持。多線程是指同時(shí)存在幾個(gè)執(zhí)行體,按幾條不同的執(zhí)行線索共同工作的情況,它使得編程人員可以很方便地開(kāi)發(fā)出具有多線程功能、能同時(shí)處理多個(gè)任務(wù)的功能強(qiáng)大的應(yīng)用程序。自從“多線程下載”技術(shù)發(fā)明以來(lái),這項(xiàng)技術(shù)得到前所未有的關(guān)注已是不爭(zhēng)的事實(shí)。在“網(wǎng)絡(luò)螞蟻”軟件流行開(kāi)后,許多下載軟件也都紛紛效仿,是否具有“多線程下載”技術(shù)、甚至能支持多少個(gè)下載線程都成了人們?cè)u(píng)測(cè)下載軟件的要素!岸嗑程下載”的基礎(chǔ)是WEB服務(wù)器支持遠(yuǎn)程的隨機(jī)讀取,也即支持“斷點(diǎn)續(xù)傳”。這樣,在下載時(shí)可以把文件分成若干部分,每一部分創(chuàng)建一個(gè)下載線程進(jìn)行下載。

  2 系統(tǒng)開(kāi)發(fā)的目的

  多線程和傳統(tǒng)的單線程在程序設(shè)計(jì)上最大的區(qū)別在于,由于各個(gè)線程的控制流彼此獨(dú)立,使得各個(gè)線程之間的代碼是亂序執(zhí)行,由此帶來(lái)的線程調(diào)度問(wèn)題。由于是多線程進(jìn)行斷點(diǎn)續(xù)傳,還要考慮記錄多個(gè)斷點(diǎn)位置,且記錄斷點(diǎn)位置時(shí)也要考慮同步互斥等問(wèn)題。所有這些都使得這一步比較復(fù)雜。但是可以明顯提高網(wǎng)絡(luò)文件的下載速度,F(xiàn)在,不要說(shuō)編寫專門的下載軟件,在自己編寫的軟件中,加入下載功能有時(shí)也非常必要。如讓自己的軟件支持自動(dòng)在線升級(jí),或者在軟件中自動(dòng)下載新的數(shù)據(jù)進(jìn)行數(shù)據(jù)更新,這都是很有用、而且很實(shí)用的功能。

  3 可行性分析

  下載程序功能模塊的實(shí)現(xiàn)主要利用了面向?qū)ο蟮腸++高級(jí)編程語(yǔ)言。

  多線程編程技術(shù)是c++語(yǔ)言的重要特點(diǎn)。多線程編程的含義是將程序任務(wù)分成幾個(gè)并行的'子任務(wù)。特別是在網(wǎng)絡(luò)編程中,有很多功能是可以并發(fā)執(zhí)行的。

  C++中實(shí)現(xiàn)多線程的類有兩種方法:1.擴(kuò)展Thread類,CreateThread創(chuàng)建線程用它覆蓋Thread類的run方法。2. CFile 文件讀取,生成實(shí)現(xiàn)Runnable接口的類并將其它的實(shí)例與Thread實(shí)例相關(guān)聯(lián)。

  Thread類是負(fù)責(zé)向其它類提供線程支持的最主要的類,要使用一個(gè)類具有線程功能,在C++中只要簡(jiǎn)單地從Thread類派生一個(gè)子類就可以了。

  下載程序的具備友好的用戶界面,而且操作簡(jiǎn)單易于被用戶接收,使用此下載程序十分方便,因?yàn)檐浖牟僮魉悸繁容^清晰,而且用戶實(shí)際操作的內(nèi)容較少,所以用戶只需要熟練操作計(jì)算機(jī)即可。因此從使用操作方面看,此系統(tǒng)得開(kāi)發(fā)是可行的

  4 用戶需求分析

  隨著Internet的發(fā)展,進(jìn)入信息時(shí)代后快速獲得網(wǎng)絡(luò)共享資源成為很簡(jiǎn)單的事情,人們對(duì)互聯(lián)網(wǎng)也有了很大的依賴性。人們甚至希望只輕松點(diǎn)擊鼠標(biāo)就可以得到自己想要的東西。比如,針對(duì)一些專業(yè)的論壇提供了很多相關(guān)資料以方便人們閱讀或了解;還有更多的人希望能過(guò)下載到他們喜歡聽(tīng)得音樂(lè)、好看的圖片、喜歡的電影等等。也可以看出人們?cè)谏暇W(wǎng)時(shí)再也不單是打開(kāi)瀏覽器來(lái)瀏覽網(wǎng)頁(yè),越來(lái)越多的人們開(kāi)始使用下載軟件來(lái)獲取資源。同時(shí)人們也更希望使用更新更快的下載軟件。

  由于用戶下載需求的增大,也要求下載軟件能夠迅速完成對(duì)資源的下載。多線程程序設(shè)計(jì)可以很好的解決程序并發(fā)的問(wèn)題。最恰當(dāng)?shù)谋扔骶褪怯脩魰?huì)感到CPU似乎同時(shí)出現(xiàn)在兩個(gè)地方,在下載軟件中應(yīng)用多線程技術(shù)可以理解為將一個(gè)下載任務(wù)分成若干份來(lái)完成,其中的并發(fā)控制將使下載的效率大大提高。

  在下載任務(wù)的管理這一塊,用戶不僅希望下載工具具有下載一個(gè)一個(gè)資源的功能,而且具有批量下載有些相似的或有關(guān)聯(lián)的資源的功能。還有些特殊情況下,用戶在下載任務(wù)開(kāi)始后由于種種原因希望放棄資源的下載,這就要求下載工具具有刪除任務(wù)的功能了。

  為了對(duì)下載任務(wù)進(jìn)行掌控,用戶往往具有設(shè)置下載任務(wù)的線程數(shù),文件下載網(wǎng)址,文件下載存儲(chǔ)目錄和在下載過(guò)程中對(duì)下載任務(wù)的狀態(tài)進(jìn)行監(jiān)控等功能需求。

  鑒于某些軟件使用初學(xué)者甚至某些電腦初學(xué)者的實(shí)際情況,他們往往需要系統(tǒng)有一個(gè)格外的幫助文檔,使他們能夠更快、更好地學(xué)會(huì)使用斷點(diǎn)續(xù)傳下載軟件,提高效率。

  5 系統(tǒng)設(shè)計(jì)要點(diǎn)

  隨著用戶下載需求的增大,用戶下載的資源越來(lái)越大,下載的過(guò)程也就越來(lái)越久,這就要求下載軟件能夠迅速完成對(duì)資源的下載,為了提高下載效率的問(wèn)題,所以本系統(tǒng)采用多線程的方式來(lái)實(shí)現(xiàn)下載速率的提高。多線程的優(yōu)點(diǎn)之一是所有線程都可以訪問(wèn)相同的全局變量和共享資源,它提供了程序設(shè)計(jì)的簡(jiǎn)捷性與便利性,提高了對(duì)信息處理的并發(fā)度,但也帶來(lái)了數(shù)據(jù)的訛誤或線程得不到某一資源而被餓死(即死鎖)的可能性。為了避免這些現(xiàn)象的產(chǎn)生,線程在使用共享資源或?qū)ο笄氨仨毇@得一個(gè)約束訪問(wèn)同步對(duì)象的權(quán)力,也就是通過(guò)同步的機(jī)制來(lái)控制這種權(quán)力的使用,這就是線程的安全問(wèn)題。長(zhǎng)期以來(lái),斷點(diǎn)續(xù)傳始終是困擾網(wǎng)蟲們的一大難題,眼看著已經(jīng)下載到99%的軟件,卻由于突然掉線而前功盡棄的那種沮喪恐怕人人都經(jīng)歷過(guò),于是本系統(tǒng)采用斷點(diǎn)續(xù)傳的方式來(lái)設(shè)計(jì)。

  本系統(tǒng)設(shè)計(jì)的基本目標(biāo)就是利用編寫一個(gè)時(shí)下流行的多線程斷點(diǎn)續(xù)傳的程序來(lái)研究C++多線程與線程安全的機(jī)制。

  6 功能需求

  一部分是服務(wù)器的應(yīng)用程序,主要用于接受客戶端的連接請(qǐng)求,處理客戶的請(qǐng)求,向客戶發(fā)送結(jié)果和應(yīng)答信息等;一部分是客戶端的應(yīng)用程序,主要用于申請(qǐng)連接服務(wù)器,向服務(wù)器發(fā)送請(qǐng)求和處理服務(wù)器返回的結(jié)果等。

  服務(wù)器的啟動(dòng)、客戶端的連接和消息通信:

  服務(wù)器端必須能夠做3件事情:

  (1)服務(wù)器要在特定的端口上等待來(lái)自聊天客戶的連接請(qǐng)求,并且需要維護(hù)一個(gè)客戶連接表,以記錄所有成功的連接。

  (2)服務(wù)器要及時(shí)添加共享的文件目錄,從而供客戶端下載

  (3)服務(wù)器還要具有與客戶端通信的能力。

  信息通信

  客戶端聊天程序需要完成以下5個(gè)功能:

  (1)客戶端聊天程序要負(fù)責(zé)建立和維護(hù)與服務(wù)器的連接,通過(guò)獲取用戶的設(shè)置嘗試與服務(wù)器的連接,并且隨時(shí)檢測(cè)連接的狀態(tài)。

  (2)客戶端聊天程序要把用戶輸入的信息及時(shí)發(fā)送到聊天服務(wù)器。一般情況下,當(dāng)用戶輸入一行信息并且按下回車鍵之后聊天程序就要把這一行信息發(fā)送出去,才能及時(shí)地滿足用戶的交互需求。

  (3)客戶端聊天程序要隨時(shí)準(zhǔn)備好接收來(lái)自服務(wù)器的信息,隨時(shí)把接收到的信息顯示出來(lái),讓用戶及時(shí)看到對(duì)方的響應(yīng)。

  (4)在用戶退出聊天過(guò)程時(shí)要關(guān)閉與服務(wù)器的連接。比較好的做法是提前通知服務(wù)器,或者直接給服務(wù)器發(fā)送一條退出通知,使得服務(wù)器能夠及時(shí)掌握客戶端的連接狀態(tài),把對(duì)方客戶的退出信息及時(shí)發(fā)送到對(duì)等實(shí)體上。

  (5)客戶端與服務(wù)哭端連接成功后必須知道服務(wù)器端的共享信息,以便自己可以有選擇的進(jìn)行下載。

【斷點(diǎn)續(xù)傳軟件研究論文】相關(guān)文章:

軟件開(kāi)發(fā)中軟件質(zhì)量控制研究論文11-04

軟件開(kāi)發(fā)的性能測(cè)試與研究論文11-03

軟件工程中計(jì)算思維研究論文03-19

Photoshop軟件在印章檢驗(yàn)中的運(yùn)用研究論文11-04

波紋膨脹節(jié)的設(shè)計(jì)軟件研究論文11-03

軟件安全性保障框架研究論文11-02

軟件質(zhì)量管理的優(yōu)化對(duì)策研究論文10-22

專業(yè)學(xué)生軟件開(kāi)發(fā)能力培養(yǎng)研究論文11-20

關(guān)于軍用軟件裝備開(kāi)發(fā)設(shè)計(jì)方法的研究論文10-29