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

正文內(nèi)容

ftp多線程下載工具畢業(yè)論文(編輯修改稿)

2024-10-02 17:58 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 227 (數(shù)據(jù)連接地址和端口號(hào) ) 請(qǐng)求: REST 11111(文件傳輸開始的地址) 響應(yīng): 350 ................................... 多線程技術(shù)與斷點(diǎn)續(xù)傳技術(shù)的結(jié)合 多線程技術(shù)結(jié)合斷點(diǎn)續(xù)傳技術(shù)指的是用戶在上傳或下載資源數(shù)據(jù)時(shí),將需要上傳或下載的資源數(shù)據(jù)劃分成 N個(gè)數(shù)據(jù)塊,創(chuàng)建多個(gè)下載線程, 每一個(gè)下載線程下載不同的數(shù)據(jù)塊,最后將下載完成的數(shù)據(jù)塊拼接起來。 復(fù)合文檔 復(fù)合文檔是一種 COM 結(jié)構(gòu)化存儲(chǔ)技術(shù)。微軟的 doc 格式文檔使用的就是復(fù)合文檔技術(shù)。復(fù)合文檔不僅可以存儲(chǔ)文本信息,還可以存儲(chǔ)各種其他類型的信息,如:圖片信息、聲音信息。不僅如此,復(fù)合文檔還允許多個(gè)線程同時(shí)在復(fù)合文檔的不同數(shù)據(jù)流東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 程序開發(fā)的技術(shù)基礎(chǔ) 6 中讀寫數(shù)據(jù)。創(chuàng)建復(fù)合文檔的函數(shù)如下所示: StgCreateDocfile(const WCHAR* pwcsName, //復(fù)合文檔文件名 DWORD grfMode, //標(biāo)志位 DWORD reserved, IStorage** ppstgOpen)。 //創(chuàng)建的復(fù)合文檔的指針 當(dāng)調(diào)用 StgCreateDocfile 函數(shù)創(chuàng)建一個(gè)復(fù)合文檔后,返回的第四個(gè)參數(shù)稱為根存儲(chǔ),利用 IStorage 根存儲(chǔ)的成員函數(shù)可以創(chuàng)建數(shù)據(jù)流。如下所示: HRESULT CreateStream ( Storage * This, //流所在的存儲(chǔ)指針 const OLECHAR *pwcsName, //流名字 DWORD grfMode, //標(biāo)志位 DWORD reserved1, DWORD reserved2, IStream **ppstm)。 //返回的流指針 創(chuàng)建數(shù)據(jù)流后,可以調(diào)用 IStream 的成員函數(shù) Read 和 Write 讀寫數(shù)據(jù)。除了創(chuàng)建數(shù)據(jù)流,還可以調(diào)用它的另一個(gè)成員函數(shù) CreateStorage(...)創(chuàng)建子存儲(chǔ),子存儲(chǔ)又可以創(chuàng)建自己的數(shù)據(jù)流和子存儲(chǔ)。 套接字編程簡(jiǎn)介 Socket 最早出現(xiàn)在 UNIX 系統(tǒng)中,它是 TCP/IP 協(xié)議棧向應(yīng)用程序提供的接口,用于在兩個(gè)基于 TCP/IP 協(xié)議的應(yīng)用程序之間相互通信。 Scoket 相當(dāng)于一部電話,通過它,可以與網(wǎng)絡(luò)中的其他計(jì)算機(jī)相互通信。 Windows 系統(tǒng)上,套接字用 SOCKET 進(jìn)行表示, SOCKET 實(shí)際是一個(gè)指針,指向一個(gè)數(shù)據(jù)結(jié)構(gòu),微軟對(duì) SOCKET 的底層實(shí)現(xiàn)進(jìn)行了封裝。使用 WinSock 編程時(shí),可以不必了解底層協(xié)議,因?yàn)樗?有的 API 都進(jìn)行了封裝。 套接字編程包括客戶端的編寫和服務(wù)端的編寫,這里主要介紹 windows 系統(tǒng)下客戶端的編寫,客戶端的編寫主要包括初始化 WinSock、創(chuàng)建套接字、建立連接、發(fā)送和接收數(shù)據(jù)。 套接字的編程步驟簡(jiǎn)單敘述為:首先,調(diào)用 WSAStartup 函數(shù)初始化 WinSock 動(dòng)態(tài)鏈接庫, WSAStartup 必須是應(yīng)用程序調(diào)用的第一個(gè) WinSock 函數(shù),允許應(yīng)用程序指定要使用的 WinSock 版本;初始化完成后,調(diào)用 socket 函數(shù)創(chuàng)建一個(gè) SOCKET 套接字,套接字有流式和數(shù)據(jù)報(bào)兩種類型,流式采用 TCP 協(xié)議實(shí)現(xiàn),數(shù)據(jù)報(bào)套采用 UDP協(xié)議實(shí)現(xiàn);套接字創(chuàng)建后,用 sockaddr_in 填寫 ip地址和端口號(hào)。調(diào)用 connect 函數(shù)連接服務(wù)器;之后就可以調(diào)用 recv 函數(shù)(接收)和 send 函數(shù)(發(fā)送)數(shù)據(jù)了。代碼如下所示: WSADATA wsa_data。 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 程序開發(fā)的技術(shù)基礎(chǔ) 7 WSAStartup(MAKEWORD(2,0), amp。wsa_data)。 SOCKET soc = socket(AF_INET, SOCK_STREAM, 0)。 //創(chuàng)建流失套接字 struct sockaddr_in serv_addr, = AF_INET。 = htons(16301)。//16301為端口號(hào) = i_addr()。// ip 地址 int result = connect(soc, (struct sockaddr*)amp。serv_addr, sizeof(serv_addr))。 if (result == 0)//連接成功 { char *send_data = hello。 result = send(soc, send_data, strlen(send_data), 0)。 char recv_buffer[20]。 result = recv(soc, recv_bufer, 20, 0)。 } Qt 開發(fā)平臺(tái)介紹 Qt 是由奇趣科技開發(fā)的 C++圖形界面開發(fā)框架。利用 Qt,應(yīng)用程序可以輕松的做出圖形界面,使開發(fā)人員可以將主要的精力放在邏輯層的實(shí)現(xiàn)上。這里簡(jiǎn)單介紹 Qt的核心機(jī)制:信號(hào) —— 槽機(jī)制。 信號(hào) —— 槽機(jī)制是 Qt 自己定義的通信方式。在生成代碼時(shí),使用 moc 工具生成所需要的附加代碼。當(dāng)某個(gè)繼承自 QObject 類的對(duì)象需要將自身的狀態(tài)改變發(fā)送出去的時(shí)候,就發(fā)射一個(gè)信號(hào),所有與該信號(hào)相連接的槽都會(huì)得到調(diào)用。并且,信號(hào)是可以跨線程發(fā)射的。信號(hào) — 槽的使用方式如下: class test : QObject //要使用信號(hào)槽機(jī)制必須繼承 QObject { Q_OBJECT signals: void Change()。//聲明一個(gè)信號(hào),信號(hào)只需聲明不需要定義 private slots: void recv()()。//聲明一個(gè)槽。槽不僅可以接受信號(hào),也可以普通的被調(diào)用 } test::test() { //連接一個(gè)信號(hào)和槽。這里連接 Change()信號(hào)到 _recv()槽上 connect(this, SIGNAL(Change()), this, SLOT(_recv()))。 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 程序開發(fā)的技術(shù)基礎(chǔ) 8 emit Change()。//使用 emit發(fā)送一個(gè)信號(hào),相關(guān)聯(lián)的槽 (如這里的 _recv())將得到調(diào)用 } void test::recv() { //當(dāng)發(fā)送 Change信號(hào)時(shí),這個(gè)函數(shù)會(huì)得到調(diào)用 } 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)需求分析 9 3 系統(tǒng)需求分析 為了使系統(tǒng)能夠達(dá)到預(yù)期的目標(biāo),良好的發(fā)揮作用。需要對(duì)系統(tǒng)進(jìn)行需求分析,需求分析能夠有效的減少開發(fā)阻力。在需求分析階段,應(yīng)畫出程序的功能結(jié)構(gòu)圖。 開發(fā)背景及目的 當(dāng)今的網(wǎng)絡(luò)發(fā)展已經(jīng)今非昔比,但由于中國(guó)的人口眾多,網(wǎng)絡(luò)訪問速率還是一個(gè)很嚴(yán)峻的問題。軟件技術(shù)的發(fā)展給提升網(wǎng)絡(luò)速率帶來了福音。網(wǎng)絡(luò)下載資源是使用網(wǎng)絡(luò)的基本功能之一,提升下載資源的速率可以很好的改善用戶的體驗(yàn)。 下載工具應(yīng)具備的基礎(chǔ)功能 下載系統(tǒng)的功能主要包括:遠(yuǎn)程訪問、下載管理、配置管理、日志輸出。 圖 4 系統(tǒng)功能結(jié)構(gòu)圖 遠(yuǎn)程訪問模塊 遠(yuǎn)程訪問模塊提供了服務(wù)器與用戶的交互功能。當(dāng)用戶使用下載系統(tǒng)時(shí),首先填寫服務(wù)器的地址、端口號(hào)、登錄名和密碼。下載系統(tǒng)根據(jù)用戶填寫的地址和端口號(hào)向遠(yuǎn)程服務(wù)器發(fā)送連接請(qǐng)求。與服務(wù)器建立連接后,下載系統(tǒng)根據(jù)登錄名和密碼進(jìn)行登錄驗(yàn)證。當(dāng)驗(yàn)證成功后,發(fā)送命令獲取服務(wù)器的文件列表信息并將其顯示在程序界面東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)需求分析 10 上。用戶可以查看服務(wù)器當(dāng)前目錄下的文件信息、修改當(dāng)前的工作目錄,如:返上一層目錄和進(jìn)入指定目錄。 下載管理模塊 當(dāng)用戶點(diǎn)擊下載按鈕下載文件時(shí),下載系統(tǒng)將用戶點(diǎn)擊的文件名、 文件路徑和系統(tǒng)參數(shù)中的線程分配額度、存儲(chǔ)路徑、存儲(chǔ)文件名發(fā)給下載管理模塊。下載管理模塊首先創(chuàng)建一個(gè)復(fù)合文檔,然后創(chuàng)建一定數(shù)量的下載線程。下載線程向服務(wù)器發(fā)送命令,下載任務(wù)分配的數(shù)據(jù)塊,將數(shù)據(jù)塊存儲(chǔ)到復(fù)合文檔的數(shù)據(jù)流中。下載過程中,實(shí)時(shí)向用戶顯示下載的進(jìn)度、速率、線程數(shù)等相關(guān)信息。用戶可以選擇刪除或者暫停下載任務(wù)。刪除下載任務(wù)將關(guān)閉下載線程并刪除復(fù)合文檔,暫停任務(wù)只是關(guān)閉下載線程,以后還可以繼續(xù)開始下載。 配置管理模塊 配置管理模塊主要用來設(shè)置以及存儲(chǔ)系統(tǒng)的相關(guān)配置參數(shù)信息。用戶可以設(shè)置系統(tǒng)的相關(guān)參 數(shù),如:線程分配額度和默認(rèn)存儲(chǔ)路徑。線程分配額度影響下載文件時(shí)使用的下載線程數(shù),用戶可以改動(dòng)這個(gè)參數(shù)使下載線程的數(shù)量增加或減少。默認(rèn)存儲(chǔ)路徑是下載文件的默認(rèn)設(shè)置,用戶可以更改默認(rèn)路徑。 日志輸出模塊 用戶操作下載系統(tǒng)時(shí),比如當(dāng)用戶點(diǎn)擊連接按鈕連接服務(wù)器時(shí),下載系統(tǒng)將發(fā)送連接請(qǐng)求并將程序的運(yùn)行信息顯示在日志輸出欄中。用戶可以根據(jù)日志輸出欄的日志查看當(dāng)前下載系統(tǒng)的操作已經(jīng)進(jìn)行到哪一步。日志輸出模塊主要輸出三種日志:下載系統(tǒng)的 FTP 命令發(fā)送日志、遠(yuǎn)程服務(wù)器的應(yīng)答日志、系統(tǒng)的錯(cuò)誤日志。用戶可以根據(jù)日志選擇 接下來的操作。如發(fā)現(xiàn)系統(tǒng)連接失敗,則用戶可以嘗試重新連接。 任務(wù)分析 性能要求 ( 1)下載工具應(yīng)操作簡(jiǎn)單,符合用戶使用習(xí)慣; ( 2)下載工具整體應(yīng)具有良好的容錯(cuò)性,對(duì)于服務(wù)器的應(yīng)答錯(cuò)誤及網(wǎng)絡(luò)異常應(yīng)有較好的處理機(jī)制; ( 3)下載工具應(yīng)有具有較高的安全性,防止用戶信息的泄漏; ( 4)下載工具應(yīng)具有良好的穩(wěn)定性; ( 5)下載工具應(yīng)具有良好的擴(kuò)展性,可以滿足 FTP 協(xié)議的擴(kuò)展; 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)需求分析 11 運(yùn)行環(huán)境 ( 1)系統(tǒng)運(yùn)行的軟件環(huán)境: Windows 系統(tǒng)操作系統(tǒng)。 ( 2)硬件環(huán)境: CPU:1GHz 以上,內(nèi)存: 128M 以上。 數(shù)據(jù)流分析 圖 5 數(shù)據(jù)流頂層圖 如圖 5 所示,為頂層數(shù)據(jù)流圖。用戶的操作通過 FTP 下載系統(tǒng)處理后以 FTP 命令的形式發(fā)送給服務(wù)器。服務(wù)器響應(yīng)命令并向下載系統(tǒng)發(fā)送應(yīng)答碼和資源數(shù)據(jù)。下載系統(tǒng)對(duì)應(yīng)答碼進(jìn)行解析,對(duì)資源進(jìn)行存儲(chǔ),將結(jié)果返回給用戶。 圖 6 數(shù)據(jù)流第一層圖 如圖 6 所示為數(shù)據(jù)流第一層圖,下載系統(tǒng)主要分為兩個(gè)部分:遠(yuǎn)程連接和下載資源。遠(yuǎn)程連接處理用戶與服務(wù)器之間的交互操作,如用戶的登錄,服務(wù)器狀態(tài)信息的東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)需求分析 12 獲取、文件列表的獲取、修改服務(wù)器路徑等功能。下載資源主要處理用戶的下載操作。如用戶的新建、刪除、暫停、開始等下載任務(wù)。 圖 7 遠(yuǎn)程連接細(xì)分 當(dāng)用戶點(diǎn)擊連接按鈕時(shí),遠(yuǎn)程連接模塊創(chuàng)建套接字與服務(wù)器連接,連接建立后,將需要執(zhí)行的 FTP 命令加入到 FTP 命令管理處, FTP 命令管理處依據(jù) FTP命令添加的順序向服務(wù)器發(fā)送命令請(qǐng)求,接收服務(wù)器的應(yīng)答信息。 圖 8 下載資源細(xì)分 當(dāng)用戶新建下載任務(wù)時(shí),下載系統(tǒng)將任務(wù)請(qǐng)求交給下載模塊,下載模塊根據(jù)用戶提供的下載信息和系統(tǒng)的參數(shù)信息分配下載線程進(jìn)行下載。下載線程將命令添加到FTP 命令管理處。 FTP 命令管理處根據(jù) FTP 命令添加的順序向服務(wù)器發(fā)送命令請(qǐng)求,東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)需求分析 13 接收服務(wù)器的應(yīng)答信息和數(shù)據(jù)流,下載模塊根據(jù)數(shù)據(jù)流信息生成目標(biāo)文件,下載完成。 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)概要設(shè)計(jì) 14 4 系統(tǒng)概要設(shè)計(jì) 系統(tǒng)邏輯結(jié)構(gòu) 本文實(shí)現(xiàn)的下載系統(tǒng)采用 C/S結(jié)構(gòu),實(shí)現(xiàn)了 FTP 的客戶端部分。下載系統(tǒng)在邏輯上可分為三個(gè)層次,表現(xiàn)層、業(yè)務(wù)邏輯層、命令執(zhí)行層。系統(tǒng)在邏輯上分層,可以降低系統(tǒng)的耦合度,有利于系統(tǒng)的開發(fā)和維護(hù)。 表現(xiàn)層是系統(tǒng)的最上層。負(fù)責(zé)系統(tǒng)界面的管理,控件的初始化;用戶操作的合理性檢驗(yàn),將合理的請(qǐng)求下發(fā)給業(yè)務(wù)邏輯層;顯示業(yè)務(wù)邏輯層的處理結(jié)果。 業(yè)務(wù)邏輯層是系統(tǒng)的中間層,是系統(tǒng)的核心部分,負(fù)責(zé)對(duì)用戶的操作進(jìn)行處理。主要分為兩個(gè)部分,遠(yuǎn)程交互部分和下載部分。表現(xiàn)層根據(jù)用戶請(qǐng)求的性質(zhì)進(jìn)行區(qū)分,將與服務(wù)器交互的命令(如:登錄、獲取服務(wù)器狀態(tài))發(fā)送給遠(yuǎn)程交互部分,將用戶的下載請(qǐng)求發(fā) 送給下載部分。遠(yuǎn)程交互部分和下載部分將用戶的請(qǐng)求分解為一系列的FTP 命令并將這些命令發(fā)送給命令執(zhí)行層執(zhí)行,最后將處理的結(jié)果返回給表現(xiàn)層。 命令執(zhí)行層是系統(tǒng)的最下層,負(fù)責(zé)處理業(yè)務(wù)邏輯層下發(fā)的 FTP 命令請(qǐng)求,向服務(wù)器發(fā)送 FTP 命令,當(dāng)服務(wù)器返回應(yīng)答信息時(shí),接收并解析服務(wù)器的應(yīng)答信息;當(dāng)需要下載資源時(shí),也是由命令執(zhí)行層接收數(shù)據(jù),并將數(shù)據(jù)返回給業(yè)務(wù)邏輯層。 系統(tǒng)類圖設(shè)計(jì) 程序的主類 UML 圖如圖 9所示。系統(tǒng)主要分為三大模塊,分別為:遠(yuǎn)程訪問模塊、下載模塊、 FTP 命令控制模塊。遠(yuǎn)程訪問模塊的主類為 RemoteServer,下載模塊的主類為 DdController, FTP 命令控制模塊的主類為 RequestCore。界面管理類為 AppUI類。 當(dāng)用戶進(jìn)行操作時(shí),界面管理類 AppUI 將操作命令發(fā)送給命令分發(fā)類CmdController。命令分發(fā)類主要完成兩個(gè)功能:將用戶與服務(wù)器交互的命令發(fā)送給遠(yuǎn)程訪問類 RemoteServer 處理,將用戶下載命令發(fā)送給下載
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1