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

正文內(nèi)容

ftp多線程下載工具畢業(yè)論文-文庫吧在線文庫

2024-10-10 17:58上一頁面

下一頁面
  

【正文】 .................................................................. 14 系統(tǒng)項(xiàng)目文檔結(jié)構(gòu) .................................................................................................... 15 系統(tǒng)重用設(shè)計(jì) ........................................................................................................... 16 5 系統(tǒng)功能的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn) ............................................................................................. 20 程序界面設(shè)計(jì)實(shí)現(xiàn) .................................................................................................... 20 程序返回值的定義 .................................................................................................... 21 服務(wù)器接受請(qǐng)求應(yīng)答實(shí)現(xiàn) .......................................................................................... 22 FTP命令的管理與執(zhí)行的技術(shù)實(shí)現(xiàn) ............................................................................. 23 FTP命令管理的技術(shù)實(shí)現(xiàn) ................................................................................ 23 FTP命令執(zhí)行的技術(shù)實(shí)現(xiàn) ................................................................................ 25 下載模塊的技 術(shù)與實(shí)現(xiàn) ............................................................................................. 25 多線程通信的設(shè)計(jì)實(shí)現(xiàn) ................................................................................... 26 線程任務(wù)分配的設(shè)計(jì)實(shí)現(xiàn) ............................................................................... 27 復(fù)合文檔的使用與合并數(shù)據(jù)的技術(shù)實(shí)現(xiàn) .......................................................... 29 下載線程的設(shè)計(jì)與實(shí)現(xiàn) ................................................................................... 31 系統(tǒng)退出時(shí)下載模塊信息保存的技術(shù)實(shí)現(xiàn) ....................................................... 33 結(jié)論 .........................................................................................................................................1 致 謝 ......................................................................................................................................1 參考文獻(xiàn) ..................................................................................................................................1 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 緒論 1 1 緒論 隨著 21 世紀(jì)網(wǎng)絡(luò)信息時(shí)代的到來,網(wǎng)絡(luò)在人類的生活中已經(jīng)是不可或缺的一部分。如今,網(wǎng)絡(luò)用戶數(shù)量在不斷 的增長(zhǎng),導(dǎo)致網(wǎng)絡(luò)的訪問速率過低。在網(wǎng)絡(luò)中存在許多 “ 匿名 ” 服務(wù)器,這類服務(wù)器用于向公眾提供免費(fèi)的文件傳輸服務(wù),此類 FTP 都有統(tǒng)一的匿名登錄帳號(hào) :anonymous。 控制連接是初始時(shí)客戶端向服務(wù)端發(fā)送的連接。按照命令的功能,可以將命令分為:訪問控制、傳輸參數(shù)和 FTP服務(wù)。在以往的單線程編程中,程序的執(zhí)行,是按照代碼順序執(zhí)行的,符合人類大腦的思考方式。 線程的創(chuàng)建 在默認(rèn)情況下,一個(gè)進(jìn)程只有一個(gè)線程,從主函數(shù) main()開始執(zhí)行。 FTP 的斷點(diǎn)續(xù)傳功能依靠 FTP 命令 REST。創(chuàng)建復(fù)合文檔的函數(shù)如下所示: StgCreateDocfile(const WCHAR* pwcsName, //復(fù)合文檔文件名 DWORD grfMode, //標(biāo)志位 DWORD reserved, IStorage** ppstgOpen)。使用 WinSock 編程時(shí),可以不必了解底層協(xié)議,因?yàn)樗?有的 API 都進(jìn)行了封裝。 //創(chuàng)建流失套接字 struct sockaddr_in serv_addr, = AF_INET。 result = recv(soc, recv_bufer, 20, 0)。信號(hào) — 槽的使用方式如下: class test : QObject //要使用信號(hào)槽機(jī)制必須繼承 QObject { Q_OBJECT signals: void Change()。在需求分析階段,應(yīng)畫出程序的功能結(jié)構(gòu)圖。與服務(wù)器建立連接后,下載系統(tǒng)根據(jù)登錄名和密碼進(jìn)行登錄驗(yàn)證。刪除下載任務(wù)將關(guān)閉下載線程并刪除復(fù)合文檔,暫停任務(wù)只是關(guān)閉下載線程,以后還可以繼續(xù)開始下載。用戶可以根據(jù)日志選擇 接下來的操作。 圖 6 數(shù)據(jù)流第一層圖 如圖 6 所示為數(shù)據(jù)流第一層圖,下載系統(tǒng)主要分為兩個(gè)部分:遠(yuǎn)程連接和下載資源。 東華理工大學(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 的客戶端部分。遠(yuǎn)程交互部分和下載部分將用戶的請(qǐng)求分解為一系列的FTP 命令并將這些命令發(fā)送給命令執(zhí)行層執(zhí)行,最后將處理的結(jié)果返回給表現(xiàn)層。 遠(yuǎn)程訪問類 RemoteServer 主要功能是將一系列命令添加到 FTP 命令控制類RequestCore 中。如圖 10 所示,F(xiàn)ormFiles 存儲(chǔ)了程序的窗口 ui文件, HeaderFile 和 Source Files 中存放系統(tǒng)的界面管理類的實(shí)現(xiàn)。在設(shè)計(jì)系統(tǒng)時(shí),一定要清楚哪些模塊是可以抽離出來反復(fù)使用的。 AppInfo 類是一個(gè)保存程序配置信息的類,因?yàn)楸4嫘畔⒌男枨蠓稚⒃诔绦虻牟煌胤?,因此該類使用單例模式? } QString AppInfo::GetStorageValue(QString key) { return m_pSetvalue(key).toString()。 WorkSocket 類的定義如下: class WorkSocket : public QTcpSocket { Q_OBJECT public: WorkSocket(QObject *parent = nullptr)。 //讀取 FTP的數(shù)據(jù) void _disconnected()。 //發(fā)送錯(cuò)誤日志 virtual void _outputErrorLog(const QString amp。 為了符合 FTP 的擴(kuò)展性,下載系統(tǒng)也應(yīng)具有擴(kuò)展性。然后 FTP 命令控制類在合適的時(shí)機(jī)根據(jù) FTP 命令壓入的順序進(jìn)行執(zhí)行。當(dāng)控件被用戶操作時(shí),控件會(huì)發(fā)射相關(guān)的信號(hào) ,如控件點(diǎn)擊時(shí)將發(fā)送 clicked()信號(hào),在 Qt界面子類中使用 Qt的信號(hào)槽機(jī)制關(guān)聯(lián)控件的信號(hào) ,信號(hào)發(fā)射時(shí)槽函數(shù)將得到調(diào)用。 connect(, SIGNAL(clicked()), this, SLOT(_option()))。標(biāo)記為 3的部分,顯示日志的輸出,輸出三類信息: FTP命令信息、服務(wù)器的應(yīng)答信息、程序的異常信息。在非阻塞模式下,調(diào)用套接字的相關(guān)函數(shù),線程不等待函數(shù)的返回繼續(xù)往下執(zhí)行。當(dāng)前命令處理成功后,繼續(xù)處理下一條 FTP命令,直至命令為空。 return _clearRecvData()。 } } _cmdProcessingCompleted()。 RequestInfo類保存了當(dāng)前命令需要的參數(shù)信息。 //CWD命令的參數(shù) }cwd_in。 }pwd_out。如在 RemoteServer遠(yuǎn)程訪問類中,創(chuàng)建了一個(gè) FTP命令控制類的實(shí)例,添加登錄命令的代碼如下: hr = (amp。 RequestCmdXXX 系列類為模板類,其模版參數(shù)為 OutputLog。將下載任務(wù)分配給下載線程,由下載線程下載數(shù)據(jù)并返回實(shí)時(shí)的下載速率信息。 DdEvent():QEvent((QEvent::Type)Data){} DdRange range。這里涉及到下載模塊的數(shù)據(jù)結(jié)構(gòu)。簡(jiǎn)單的計(jì)算方法是,根據(jù)線程分配額度確定 50M的數(shù)據(jù)塊需要多少個(gè)線程下載,再根據(jù)文件大小計(jì)算出實(shí)際的線程數(shù)。 return range。找到需要下載的數(shù)據(jù)塊,將數(shù)據(jù)塊的范圍發(fā)送給下載線程下載。 DdInfoEx派生類中存儲(chǔ)了數(shù)據(jù)管理信息。 //線程指針 }。 QEvent是 Qt所有事件的基類,要定義自己的事件,則需要派生自 QEvent。簡(jiǎn)潔的接口設(shè)計(jì),提供了外界管理上的方便。m_userInfopassword))。 }retr_out。 quint64 len。 //回調(diào)函數(shù) , union { struct _login_In { QString *user。 東華理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)功能的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn) 24 列表的參數(shù)為: struct __info { FUNC_PTR ptr。 } else if (hr == E_OK) {//處理完一個(gè)命令處理下一個(gè)命令 _clearRecvData()。 } return 。 在 WorkSocket 接收槽上,首先檢查接收到的數(shù)據(jù)的完整性,如果當(dāng)前接收到的數(shù)據(jù)不是完整的一條應(yīng)答碼則返回。而把 TRUE 和 FALSE 當(dāng)作返回值,無法看到具體的出錯(cuò)原因 下載系統(tǒng)的返回值類型為 ERESULT,其定義為: typedef qint16 ERESULT。)))。 connect(, SIGNAL(clicked()), this, SLOT(_connect()))。 將 ui文件添加到項(xiàng)目中, Qt自動(dòng)為 ui文件在命名空間 Ui中生成相關(guān)的 ui類。所有的 FTP 命令執(zhí)行類具有統(tǒng)一的接口,但它們并不擁有共同的基類,這樣設(shè)計(jì)可以方便以后擴(kuò)展。 private: bool m_bIsFirstRecv。 //錯(cuò)誤處理 virtual void _clearRecvData()。ip, quint16 port)。 結(jié)合遠(yuǎn)程訪問與下載資源的相同點(diǎn)與異同點(diǎn),可以將它們的相同點(diǎn)抽離出來,WorkSocket類就是這樣的一個(gè)類,該類的 UML圖如圖 15所示。 關(guān)鍵代碼如下: AppInfo* AppInfo::GetInstance() { static AppInfo appInfo。如程序的運(yùn)行參數(shù)、用戶的操作信息等。 Remoteserver 存放系統(tǒng)與服務(wù)器的交互, request存放 FTP 的處理類。 DDScoket 類根據(jù)下載任務(wù),將一些 FTP 命令添加到 FTP 命令控制類 RequestCore 中。遠(yuǎn)程訪問模塊的主類為 RemoteServer,下載模塊的主類為 DdController, FTP 命令控制模塊的主類為 RequestCore。負(fù)責(zé)系統(tǒng)界面的管理,控件的初始化;用戶操作的合理性檢驗(yàn),將合理的請(qǐng)求下發(fā)給業(yè)務(wù)邏輯層;顯示業(yè)務(wù)邏輯層的處理結(jié)果。 圖 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)答信息。 數(shù)據(jù)流分析
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1