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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-代理服務(wù)器測(cè)試程序的設(shè)計(jì)與實(shí)現(xiàn)—論文-文庫(kù)吧

2024-11-11 18:00 本頁(yè)面


【正文】 (這是微軟的一向作風(fēng) )。因此就造成了 MFC 對(duì)類封裝 中的一定程度的的冗余和迂回 ,但這是可以接受的 。 3 SuperProxy 簡(jiǎn)介 系統(tǒng)開(kāi)發(fā)環(huán)境 系統(tǒng)軟件環(huán)境: 操作系統(tǒng): WindowsXP 程序語(yǔ)言: C++ 開(kāi)發(fā)平臺(tái): Visual C++ 瀏覽器: Inert Explorer 系統(tǒng)硬件環(huán)境: 處理器: AMD Sempron 2400+ 內(nèi)存: 256MB SuperProxy 功能簡(jiǎn)述 SuperProxy 是圍繞著怎樣驗(yàn)證代理服務(wù)器的可用性來(lái)展開(kāi)設(shè)計(jì)與實(shí)現(xiàn)的,所以很明確的講整個(gè)系統(tǒng)的主要功能為快速準(zhǔn)確的驗(yàn)證一批代理,并按照一定的 次序?qū)︱?yàn)證結(jié)果進(jìn)行排序,能夠很明顯的看出代理間的速度差異,另外會(huì)提供一些可以給大家?guī)?lái)方便的輔助功能。以下對(duì) SuperProxy 將要實(shí)現(xiàn)的功能做簡(jiǎn)要的描述: 1. 可以從 .txt 格式的文件導(dǎo)入代理列表 ,自動(dòng)從文件中識(shí)別出代理 , 自動(dòng)過(guò)濾掉空白或者無(wú)效格式代理。 2. 提供對(duì)代理列表的多種操作,如刪除代理 、 添加代理 、 復(fù)制代理等。 3. 快速準(zhǔn)確地驗(yàn)證所有代理,并自動(dòng)按照速度的快慢排序,另外提供對(duì) 第 4 頁(yè) 共 22 頁(yè) 單個(gè)代理和可選代理的驗(yàn)證。 4. 可以導(dǎo)出可用,可選代理到 .txt 文件。 5. 可以選定某個(gè)代理設(shè)置為 IE 代理 。 6. 提供一個(gè)代理資源列表,方便用戶得到 代理。其中提供了對(duì)代理資源列表的一些相關(guān)操作,如添加 、 刪除代理等。 7. 簡(jiǎn)單的代理驗(yàn)證設(shè)置。 圖 1 SuperProxy 功能結(jié)構(gòu)圖 4 SuperProxy 的設(shè)計(jì) 在選擇了課題之后,就決定采用基于對(duì)話框的 MFC 程序來(lái)構(gòu)造整個(gè)系統(tǒng),主要原因是作者覺(jué)得比較適合這個(gè)系統(tǒng)的設(shè)計(jì),在開(kāi)發(fā)上也容易上手,另外由于作者有用過(guò)諸如 ProxyFox、 ProxyThorn、 ProxyHunter 這些代理測(cè)試軟件,一直都對(duì)這類軟件有種特殊的感覺(jué),會(huì)想自己是否能夠做出類似的的軟件 ,選擇這個(gè)課題也有一部分因素是因?yàn)檫@個(gè)。使用這些軟件也確實(shí)給 SuperProxy (極速代理 )的設(shè)計(jì)與開(kāi)發(fā)帶來(lái)了很大的幫助。尤其是最初的設(shè)計(jì)階段,讓作者對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)有了宏觀上的構(gòu)思,在界面上也多少參考了 ProxyFox 的設(shè)計(jì),當(dāng)然不是純粹的模仿,在一些方面也加入了作者自己的理解和構(gòu)思,這在后面的比較上就可以看到。 SuperProxy 是決定要做成基于對(duì)話框的應(yīng)用程序,所以作者在明確了系統(tǒng)需要做到的主要功能之后降開(kāi)始對(duì)系統(tǒng)界面進(jìn)行大致的制作,然后針對(duì)具體的功能需要以及界面操作開(kāi)始進(jìn)行實(shí)際的編碼,在實(shí)際編碼 過(guò)程中也將對(duì)界面進(jìn)SuperProxy 代理列表的操作 驗(yàn)證所有的代理 導(dǎo)出可用代理到文本文檔 IE 代理的設(shè)置 提供代理資源列表 代理驗(yàn)證的設(shè)置 代理列表的導(dǎo)入 第 5 頁(yè) 共 22 頁(yè) 行一定的改動(dòng)。 SuperProxy 的界面設(shè)計(jì) 圖 2 ProxyFox主界面 圖 3 SuperProxy主界面 SuperProxy 功能模塊設(shè)計(jì)階段 在這個(gè)階段里,主要是完成對(duì)整個(gè)系統(tǒng)的一個(gè)基礎(chǔ)構(gòu)建,包括劃分模塊, 第 6 頁(yè) 共 22 頁(yè) 以及設(shè)想一下特定模塊的實(shí)現(xiàn)概要,而不是考慮具體的實(shí)現(xiàn)細(xì)節(jié),這會(huì)留在后面的編碼實(shí)現(xiàn)階段來(lái)完成。 整個(gè)系統(tǒng)從邏輯上看可以分為 3 個(gè) 大部分 (從界面上也可以顯然的看出來(lái) ): 1. 代理服務(wù)器列表部分 2. 代理資源網(wǎng)列表部分 3. 驗(yàn)證代理列表功能部分 對(duì)于部分 1,主要是顯示代理列表,右鍵出現(xiàn)上下文 菜單,菜單中包括對(duì)代理列表的一些相關(guān)操作,如復(fù)制代理,刪除代理 ,選定為 IE 代理等。對(duì)于復(fù)制代理來(lái)說(shuō),需要用到剪貼板的相關(guān)操作,而把選定的特定代理設(shè)為 IE則會(huì)通過(guò)修改注冊(cè)表中對(duì)應(yīng)的相關(guān)鍵值 (“ ProxyEnable” ,” ProxyServer” )來(lái)完成。 對(duì)于部分 2,需要完成的功能從實(shí)質(zhì)上是和 1)相同,上下文菜單中同樣會(huì)包括一些諸如添加資源,刪除資源等的選項(xiàng)。 對(duì)于部分 3,這是整個(gè)系統(tǒng)的主要部分,也是系統(tǒng)的主要編碼部分,在這里將要完成對(duì)這些功能實(shí)現(xiàn)的一些總體考慮,這在以后的實(shí)際編碼過(guò)程中有著至關(guān)重要的作用,下 面就是一些我們需要在編碼之前做的一些工作: 1) 針對(duì)代理列表的導(dǎo)入和導(dǎo)出,需要定義代理的數(shù)據(jù)結(jié)構(gòu),已經(jīng)存儲(chǔ)代理的文件格式。在系統(tǒng)里將會(huì)用可編輯的 .txt 文件來(lái)保存代理,對(duì)于單個(gè)代理來(lái)說(shuō)在 .txt 文件中獨(dú)行存儲(chǔ)且具有特定的格式: 代理地址:端口號(hào)@ HTTP描述 (一般是代理的歸屬地 ) :80US :3128Great Britain (UK) :3128HK :80HK :3128HK :80HK 2) 針對(duì)代理資源列表的加載,我們同樣需要規(guī)定代理資源的格式問(wèn)題首先確定代理資源網(wǎng)站的格式為: 網(wǎng)站名稱 網(wǎng)站地址 _網(wǎng)站描述 例:代理中國(guó) () 但這里我們希望從特定的路徑加載資源,并把增加或者刪除資源都具體反應(yīng)到這個(gè)特定路徑的特定名字的資源文件中,而不是單純的反應(yīng)到界面列表之中。這樣我們?cè)谙麓纬绦騿?dòng)之后才能保證我們刪除的代理資源已經(jīng)不在資源列表中,也同樣看到我們上次增 加的資源。 第 7 頁(yè) 共 22 頁(yè) 3) 針對(duì)代理的驗(yàn)證問(wèn)題,這將是整個(gè)系統(tǒng)的關(guān)鍵部分也將是整個(gè)系統(tǒng)設(shè)計(jì)的難點(diǎn)部分,因?yàn)橐?yàn)證一定數(shù)目 的代理,需要用到多線程,這將通過(guò) MFC 中的 WinThread 類來(lái)實(shí)現(xiàn),另外需要連接 Inter,將用 Win 類完成具體的實(shí)現(xiàn)細(xì)節(jié),其中也將會(huì)用到自定義消息來(lái)完成一些相關(guān)操作。 SuperProxy 流程圖 圖 4 SuperProxy系統(tǒng)流程圖 5 SuperProxy 具體編碼實(shí)現(xiàn) 代理資源列表模塊實(shí)現(xiàn) 這里列出這樣一個(gè)函數(shù),完成代理資源列表的加載。 主要 實(shí)現(xiàn)思想為在程序運(yùn)行目錄下尋找存在代理資源網(wǎng)站的 .txt 文件,如果存在則把其中的代理資源加載入代理資源列表m_listProxyWeb 中。如果不存在則把默認(rèn)的站點(diǎn): 代理中國(guó) ()加載入列表。 BOOL CSuperProxyDlg::LoadResourseListFile() { //加載資源文件 中內(nèi)容到資源列表中 CStdioFile file。 導(dǎo)入代理列表 操作代理列表 開(kāi)始驗(yàn)證代理 代理驗(yàn)證結(jié)束 操作代理列表 導(dǎo)出可用代理 第 8 頁(yè) 共 22 頁(yè) CString sLine,sFileName。 sFileName = 。 //LPCTSTR lpszFile = (LPCTSTR)sFileName。 CString sName, sAddress, sDescription。 INT nFind。 if(!(sFileName, CFile::modeRead)) { (0,代理中國(guó) )。 (0,1, (0,2,代理中國(guó) ())。 return FALSE。 } else { while((sLine)) { //尋找資源的描述信息 nFind = (_T(_))。 if(nFind = 0) { sDescription = (() nFind 1)。 sLine = (nFind)。 } // 尋找資源的地址信息 nFind = (_T())。 if(nFind = 0) { sAddress = (() nFind 1)。 sName = (nFind)。 } (0,sName)。 (0,1,sAddress)。 (0,2,sDescription)。 } 第 9 頁(yè) 共 22 頁(yè) return TRUE。 } } 代理驗(yàn)證模塊實(shí)現(xiàn) 主要運(yùn)用 CWinI 類來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)原理為:開(kāi)啟多個(gè)線程,讓每一個(gè)線程通過(guò)列表中的代理去連接某個(gè)特定網(wǎng)站 (如 ),下載它的頁(yè)面存與某個(gè)字符串中,記錄下整個(gè)過(guò)程的時(shí)間,然后在這個(gè)字符串中尋找特定字符串 (如 ” My Yahoo!” ),存在則說(shuō)明代理可用,如果不存在或者說(shuō)在用代理去連接網(wǎng)站的時(shí)候出現(xiàn)異常,不能連接或者連接超時(shí)則說(shuō)明不可用,下面按照程序的流程來(lái)描述這段代碼: 1. 判斷列表中是否有代理,沒(méi)有代理則不需要驗(yàn)證。 INT nItemCount = ()。 if(nItemCount = 0) { // 沒(méi)有什么來(lái)驗(yàn)證的 return。 } 2. 驗(yàn)證前界面調(diào)整,主要是設(shè)置各個(gè)按鈕的狀態(tài),使用戶在驗(yàn)證過(guò)程中除了操作停止按鈕之外,不能操作其他的控件。 PreVerify()。 3. 根據(jù)代理列表中的代理個(gè)數(shù)以及驗(yàn)證設(shè)置對(duì)話框中的設(shè)置來(lái)創(chuàng)建需要的線程并設(shè)置各個(gè)線程的參數(shù)。如果沒(méi)有設(shè)置驗(yàn)證參數(shù),則默認(rèn)開(kāi)啟 30 個(gè)線程,使用默認(rèn)站點(diǎn) 和默認(rèn)字符串 My Yahoo!來(lái)驗(yàn)證代理。 INT nRunCount = nItemCount。 if(nRunCount m_nThreadsCanRun) nRunCount = m_nThreadsCanRun。 // // 創(chuàng)建線程 INT i。 for(i=0。 inRunCount。 i++) { g_apThread[i] = new CProxyVerifyThread。 if(g_apThread[i] == NULL) { // 如果創(chuàng)建失敗 MessageBox(_T(創(chuàng)建驗(yàn)證線程中發(fā)生異常 ), _T(驗(yàn)證失敗 ))。 PostVerify()。 第 10 頁(yè) 共 22 頁(yè) return。 } } // // 設(shè)置每個(gè)驗(yàn)證線程的參數(shù) CString sProxy。 CString sDestURL, sVerifyString。 for(i=0。 inRunCount。 i++) { do { sProxy = GetProxyItem(m_nNextVerifyItem, FALSE)。 g_apThread[m_nThreadRunning]SetNotifyParent(GetSafeHwnd(), MY_WM_VERIFY_NOTIFY, MY_WM_VERIFY_FINISHED, i, m_nNextVerifyItem)。 m_nNextVerifyItem ++。 if(g_apThread[i]SetProxy(sProxy)) { sDestURL=。 sVerifyString=My Yahoo!。 } if(g_apThread[i]CreateThread()) { (m_nNextVerifyItem1, LIST_VERIFY_COLUMN, 驗(yàn)證中 ...)。 SetTimer(VERIFY_TIMER_ID_START + i, THREAD_TIME_OUT, NULL)。 m_nThreadRunning ++。 break。 } }while(m_nNextVerifyItem nItemCount)。 } 4. 通過(guò)發(fā)線程消息的方式開(kāi)啟所有線程。 第 11 頁(yè) 共 22 頁(yè) // 啟動(dòng)所有線程! for(i=0。 im_nThreadRunning。 i++) { g_apThread[i]PostThreadMessage(MY_WM_VERIFY_START, 0, 0)。 } 5. 線程開(kāi)啟后,進(jìn)入真正的驗(yàn)證代碼 (封裝于獨(dú)立的 CProxyVerifyThread類中 ),這里主要是對(duì) HTTP 服務(wù)器進(jìn)行驗(yàn)證 ,用 MFC 中的 Win 類來(lái)實(shí)現(xiàn)。微軟提供的 Win 類是一個(gè)應(yīng)用層的網(wǎng)絡(luò)通信組件,它可以使你的應(yīng)用程序很容易的實(shí)現(xiàn) 、 ftp、 gopher 等協(xié)議而不需要你去深入的了解協(xié)議本身的規(guī)范。 圖 5 Win類工作流程圖 // 按照 HTTP協(xié)議來(lái)驗(yàn)證服務(wù)器 CString sProxy。 // 組裝出符合 WinI函數(shù)的代理數(shù)據(jù) (_T(%
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1