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

正文內(nèi)容

代理服務(wù)器測(cè)試程序的設(shè)計(jì)與實(shí)現(xiàn)—免費(fèi)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-01-04 11:21 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 s:%s), m_sProxyAddr, m_sProxyPort)。 DWORD dwTimeStartLink, dwTimeEndLink。 BOOL bSuccess。 CString sFileDownload, sLine。 建立 Inte 會(huì)話 new CinterSession() 設(shè)置會(huì)話參數(shù) SetOption() 生成 Inter 連接 GetHttpConnection() 打開連接OpenRequest() 發(fā)送請(qǐng)求 SendRequest() 第 12 頁(yè) 共 22 頁(yè) // 創(chuàng)建 Inter連接,測(cè) 試服務(wù)器速度 CInterSession *m_pSession = NULL。 m_pSession = new CInterSession( _T(Mozilla/ (patible。 MSIE 。 Windows 98)), 0, INTERNET_OPEN_TYPE_PROXY, sProxy, NULL, INTERNET_FLAG_DONT_CACHE)。 if(m_pSession == NULL) { nVerifyState = VERIFY_FAILED。 return。 } // 設(shè)置超時(shí)時(shí)間和重試次數(shù) m_pSessionSetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 5000)。 // 5秒的連接超時(shí) m_pSessionSetOption(INTERNET_OPTION_SEND_TIMEOUT, 1000)。 // 1秒的發(fā)送超時(shí) m_pSessionSetOption(INTERNET_OPTION_RECEIVE_TIMEOUT, 7000)。 // 7秒的接收超時(shí) m_pSessionSetOption(INTERNET_OPTION_DATA_SEND_TIMEOUT, 1000)。 // 1秒的發(fā)送超時(shí) m_pSessionSetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, 7000)。 // 7秒的接收超時(shí) m_pSessionSetOption(INTERNET_OPTION_CONNECT_RETRIES, 1)。 // 1次重試 // 生成連接 CHttpConnection *m_pHttpConn = NULL。 m_pHttpConn = m_pSessionGetHttpConnection(_T())。 if(m_pHttpConn == NULL) { nVerifyState = VERIFY_FAILED。 m_pSessionClose()。 第 13 頁(yè) 共 22 頁(yè) delete m_pSession。 m_pSession = NULL。 return。 } CString strObject。 ()。 CHttpFile *m_pHttpFile = NULL。 m_pHttpFile = m_pHttpConnOpenRequest( CHttpConnection::HTTP_VERB_GET, strObject, NULL )。 if(m_pHttpFile == NULL) { nVerifyState = VERIFY_FAILED。 m_pHttpConnClose()。 m_pSessionClose()。 delete m_pHttpConn。 m_pHttpConn = NULL。 delete m_pSession。 m_pSession = NULL。 return。 } ()。// 開始進(jìn)行 HTTP文件下載 dwTimeStartLink = GetTickCount()。// // 記錄動(dòng)作開始時(shí)間 try { bSuccess = m_pHttpFileSendRequest()。 // 真正發(fā)出 HTTP請(qǐng)求 if(bSuccess) { // 如果成功打開了文件 while (m_pHttpFileReadString(sLine)) { sFileDownload += sLine + _T(\r\n)。 } 第 14 頁(yè) 共 22 頁(yè) //m_aVerify[nDestID].sRecieveString = sFileDownload。 } else { nVerifyState = VERIFY_FAILED。 return。 } } catch (CInterException *e) { nVerifyState = VERIFY_PROXY_UNCONNECTABLE。 if(m_pHttpFile != NULL) m_pHttpFileClose()。 if(m_pHttpConn != NULL) m_pHttpConnClose()。 if(m_pSession != NULL) m_pSessionClose()。 if(m_pHttpFile != NULL) delete m_pHttpFile。 m_pHttpFile = NULL。 if(m_pHttpConn != NULL) delete m_pHttpConn。 m_pHttpConn = NULL。 if(m_pSession != NULL) delete m_pSession。 m_pSession = NULL。 return。 } dwTimeEndLink = GetTickCount()。 dbEndTime = ((DOUBLE)(dwTimeEndLink dwTimeStartLink)) / 。 if((My Yahoo!) = 0) { nVerifyState = VERIFY_SUCCESS。 第 15 頁(yè) 共 22 頁(yè) } else { nVerifyState = VERIFY_FILE_UNMATCHED。 } 6. 單個(gè)線程驗(yàn)證結(jié)束后發(fā)自定義的結(jié)束消息將驗(yàn)證結(jié)果寫入代理列表,如果驗(yàn)證失敗就將代理列表中驗(yàn)證狀態(tài)設(shè)置為不可用,如果驗(yàn)證代理是可用的則把驗(yàn)證花費(fèi)的時(shí)間填寫入代理列表中。然后檢測(cè)代理列表中是否還有代理需要驗(yàn),如果有的話設(shè)置此線程的參數(shù)去驗(yàn)證下一個(gè)代理,直到代理列表中沒(méi)有代理需要驗(yàn)證。 if(m_hwndParent != NULL) { // 如果定義了需要接收消息的窗口 SendMessage(m_hwndParent, m_nFinishMessage, (WPARAM)m_nThreadID, (LPARAM)m_nLParam)。 } void CSuperProxyDlg::OnVerifyFinished(WPARAM wParam, LPARAM lParam) { //處理驗(yàn)證完成的信息 INT nID = (INT)wParam。 INT nVerifyItem = (INT)lParam。 //INT nThreadsCanRun = 30。 ASSERT (nID = 0 amp。amp。 nID m_nThreadsCanRun)。 if(nID 0 || nID = m_nThreadsCanRun) return。 CProxyVerifyThread *p = g_apThread[nID]。 ASSERT(p)。 if(p == NULL) return。 KillTimer(VERIFY_TIMER_ID_START+nID)。 m_nThreadRunning 。 // 記錄驗(yàn)證的結(jié)果到列表中 if(pnVerifyState == VERIFY_SUCCESS) { CString sResult。 第 16 頁(yè) 共 22 頁(yè) (_T(%.1f), pdbEndTime)。 (nVerifyItem, LIST_VERIFY_COLUMN, sResult)。 (nVerifyItem, (INT)(pdbEndTime))。 } else { (nVerifyItem, LIST_VERIFY_COLUMN, lose)。 (nVerifyItem, 100)。 } // 使用該線程來(lái)處理下一個(gè)代理服務(wù)器的驗(yàn)證 CString sProxy。 INT nItemCount = ()。 BOOL bNeedStart = FALSE。 if(m_bVerifyAll == TRUE) {// 如果是驗(yàn)證全部代理 do { if(m_nNextVerifyItem = nItemCount) break。 sProxy = GetProxyItem(m_nNextVerifyItem, FALSE)。 g_apThread[nID]SetNotifyParent(GetSafeHwnd(), MY_WM_VERIFY_NOTIFY, MY_WM_VERIFY_FINISHED, nID, m_nNextVerifyItem)。 if(m_nNextVerifyItem nItemCount) m_nNextVerifyItem ++。 if(g_apThread[nID]SetProxy(sProxy)) { // 設(shè)置指定的代理成功 (m_nNextVerifyItem1, LIST_VERIFY_COLUMN, 驗(yàn)證中 )。 m_nThreadRunning ++。 bNeedStart = TRUE。 break。 } 第 17 頁(yè) 共 22 頁(yè) }while(m_nNextVerifyItem nItemCount)。 } else { // 如果是只驗(yàn)證選定代理 do { if(m_nNextVerifyItem = nItemCount) break。 if(!(m_nNextVerifyItem, LVIS_SELECTED)) { m_nNextVerifyItem ++。 continue。 } sProxy = GetProxyItem(m_nNextVerifyItem, FALSE)。 g_apThread[nID]SetNotifyParent(GetSafeHwnd(), MY_WM_VERIFY_NOTIFY, MY_WM_VERIFY_FINISHED, nID, m_nNextVerifyItem)。 if(m_nNextVerifyItem nItemCount) m_nNextVerifyItem ++。 if(g_apThread[nID]SetProxy(sProxy)) { // 設(shè)置指定的代理成功 (m_nNextVerifyItem1, LIST_VERIFY_COLUMN, 驗(yàn)證中 )。 m_nThreadRunning ++。 bNeedStart = TRUE。 break。 } }while(m_nNextVerifyItem nItemCount)。 } if(bNeedStart) { //如果需要繼續(xù)驗(yàn)證 g_apThread[nID]PostThreadMessage(MY_WM_VERIFY_START, 0, 0)。 第 18 頁(yè) 共 22 頁(yè) } 7. 所以驗(yàn)證線程都結(jié)束之后,關(guān)閉所有線程,調(diào)整各個(gè)控件狀態(tài)并對(duì)驗(yàn)證結(jié)果按照速度快慢進(jìn)行排序都在 PostVerify()中完成。 //驗(yàn)證完則關(guān)閉所有線程并調(diào)整界面 if(m_nNextVerifyItem = nItemCount amp。amp。 m_nThreadRunning = 0) PostVerify()。 6 系統(tǒng)測(cè)試 SuperProxy 的整個(gè)測(cè)試過(guò)程包括兩個(gè) 階段:第一階段是在各個(gè)子模塊完成之后做的針對(duì)單個(gè)模塊的單元測(cè)試;第二個(gè)階段則是在整個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1