




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗7 WSAeventselectWINSOCK I/O模型程序設(shè)計一.實驗?zāi)康耐ㄟ^這次實驗,要掌握Winsock提供了另一個有用的異步I/O模型WSAeventselect WINSOCK I/O模型。和WSAAsyncSelect模型類似的是,它也允許應(yīng)用程序在一個或多個套接字上,接收以事件為基礎(chǔ)的網(wǎng)絡(luò)事件通知。由WSAAsyncSelect模型采用的網(wǎng)絡(luò)事件來說,它們均可原封不動地移植到新模型。在用新模型開發(fā)的應(yīng)用程序中,也能接收和處理所有那些事件。該模型最主要的差別在于網(wǎng)絡(luò)事件會投遞至一個事件對象句柄,而非投遞至一個窗口例程。由于WSAeventselect WINSOCK I/O模
2、型單線程只能處理64個套接字,要處理大量客戶I/O請求,可采用線程池技術(shù)來實現(xiàn)。二.實驗環(huán)境操作系統(tǒng):Microsoft Windows 7 專業(yè)版 64位開發(fā)軟件:Visual C+開發(fā)語言:C三.實驗原理 WSAEventSelect提供了另一種異步事件通知模型。和是WSAAsyncSelect模型類似的是,它也允許應(yīng)用程序在一個或多個套接字上,接收以事件為基礎(chǔ)的網(wǎng)絡(luò)事件通知。由WSAAsyncSelect模型采用的網(wǎng)絡(luò)事件來說,它們均可原封不動地移植到新模型。在用新模型開發(fā)的應(yīng)用程序中,也能接受和出力所有那些事件。該模型最主要的差別在于網(wǎng)絡(luò)事件會投遞一個時間對象句柄,而非投遞一個窗口例程
3、。四.實驗方法及步驟1.程序設(shè)計步驟(1)初始化Winsock庫(2)創(chuàng)建套接字(3)綁定套接字(4)監(jiān)聽(5)創(chuàng)建事件對象,并關(guān)聯(lián)到新的套接字(6)處理事件對象 1).在所有事件對象上等待 2).獲取到來的通知消息 3).添加到表中 4).接收到數(shù)據(jù) 2. 程序流程圖3.關(guān)鍵源碼的解析(1)int nIndex = :WSAWaitForMultipleEvents(nEventTotal, eventArray, FALSE, WSA_INFINITE, FALSE);/ 對每個事件調(diào)用WSAWaitForMultipleEvents函數(shù),以便確定它的狀態(tài)nIndex = nIndex -
4、 WSA_WAIT_EVENT_0;for(int i=nIndex; i<nEventTotal; i+)nIndex = :WSAWaitForMultipleEvents(1, &eventArrayi, TRUE, 1000, FALSE);其中,nIndex返回的是第一個對象的位置,若發(fā)生的網(wǎng)絡(luò)事件是accept則會產(chǎn)生一個新的套接字snew,則再與一個事件綁定,因為WSAWaitForMultipleEvents函數(shù)返回的是對象的第一個位置,則后面受信的得不到處理,而這里nIndex = :WSAWaitForMultipleEvents(1, &eventA
5、rrayi, TRUE, 1000, FALSE);可以解決這個問題。:WSAEventSelect(sListen, event, FD_ACCEPT|FD_CLOSE);此處的感興趣的網(wǎng)絡(luò)事件若是加上FD_READ和FD_WRITE事件后根本沒有任何反應(yīng)。五.實驗記錄及分析六.實驗總結(jié) 通過本次實驗,讓我對WSAEventSelect模型有了更好的認(rèn)識和理解。跟上次的WSAAsyncSelect原理上沒什么區(qū)別,WSAAsyncSelect就是以windows消息為基礎(chǔ)的網(wǎng)絡(luò)事件,而WSAEventSelect就是對象跟套接字綁定一下,歸根到底還是找到發(fā)生網(wǎng)絡(luò)事件的套接字,然后分析發(fā)生了什
6、么網(wǎng)絡(luò)事件,其中受信和未受信這兩個狀態(tài)可以在調(diào)用hEventObject參數(shù)來重設(shè)。當(dāng)我抱著這樣的想法做實驗時,我發(fā)現(xiàn)我對這個實驗的理解只有這膚淺的一層,沒有深入了解,看來我們還是不能掉以輕心!教師評閱:90-95分:實驗課前做了充足的準(zhǔn)備工作,與專業(yè)相關(guān)知識能緊密聯(lián)系。實驗報告條理清晰,書寫規(guī)范,圖文并茂,報告內(nèi)容全面,主要內(nèi)容闡述詳細(xì)。認(rèn)識體會深刻,起到了實驗的目的。80-85分:實驗課前做了充足的準(zhǔn)備工作,與專業(yè)相關(guān)知識能較緊密聯(lián)系。實驗報告條理清晰,書寫規(guī)范,圖文并茂,報告內(nèi)容較全面,主要內(nèi)容闡述較詳細(xì)。認(rèn)識體會較深刻,達(dá)到了實驗的作用。70-75分:實驗課前準(zhǔn)備較充足,與專業(yè)相關(guān)知識能基本能聯(lián)系,實驗報告條理清晰,書寫較規(guī)范,報告內(nèi)容較全面,能用部分圖片展示相關(guān)內(nèi)容,主要內(nèi)容闡述較詳細(xì)。認(rèn)識體會較深刻,達(dá)到了實驗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度養(yǎng)老機(jī)構(gòu)租賃服務(wù)合同
- 2025年度餐飲管理合伙企業(yè)合作協(xié)議書
- 二零二五年度兒童娛樂中心店面租賃協(xié)議模板
- 二零二五年度酒店客房設(shè)施設(shè)備保養(yǎng)與維修合同
- 2025年度網(wǎng)絡(luò)安全技術(shù)顧問聘請合同范本
- 二零二五年度牧草種植基地牧草購買與種植保險協(xié)議
- 2025年度汽修廠汽車維修行業(yè)技術(shù)標(biāo)準(zhǔn)制定與實施勞務(wù)合同
- 2025年貨車掛靠業(yè)務(wù)委托管理合同
- 二零二五年度酒店客房承包經(jīng)營及收益分成協(xié)議
- 二零二五年度廢舊紙業(yè)買賣與再生利用合同
- 教育機(jī)構(gòu)招生合作協(xié)議
- 我的寒假生活課件模板
- ISO37000-2021組織治理-指南(雷澤佳譯2022)
- c語言期末機(jī)考(大連理工大學(xué)題庫)
- 洞頂回填技術(shù)交底
- 貝多芬與《月光奏鳴曲》
- 《汽車?yán)碚摗窂?fù)習(xí)提綱
- 利用勾股定理作圖計算(課堂PPT)
- 第18課 罐和壺(一)
- 初二下分式混合計算練習(xí)1(附答案)
- 交通建設(shè)工程工程量清單計價規(guī)范(第1部分公路工程)-解析
評論
0/150
提交評論