版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 SELECT I/O 模型服務(wù)端的程序?qū)崿F(xiàn)一實(shí)驗(yàn)?zāi)康耐ㄟ^這次實(shí)驗(yàn),掌握Winsock提供的兩種套接字模式:鎖定和非鎖定,一個應(yīng)用程序如何通過他們管理I/O,Winsock提供了一些I/O模型,select模型有助于應(yīng)用程序通過一種“異步”方式,一次對一個或多個套接字上進(jìn)行的通信加以管理,防止應(yīng)用程序在套接字處于鎖定模式中,在一次I/O綁定調(diào)用過程中,被迫進(jìn)入“鎖定”狀態(tài);同時防止在套接字處于非鎖定模式中時,產(chǎn)生WSAEWOULDBLOCK錯誤。二實(shí)驗(yàn)環(huán)境操作系統(tǒng):Microsoft Windows 7 專業(yè)版 64位開發(fā)軟件:Visual C+開發(fā)語言:C三實(shí)驗(yàn)原理
2、Select模型是winsock中最常見的I/O模型。之所以稱其為“select模型”,是由于他的中心思想便是利用select函數(shù)實(shí)現(xiàn)對I/O的管理!最初設(shè)計(jì)該模型時,主要面向的是某些使用Unix操作系統(tǒng)的計(jì)算機(jī)。select(選擇)模型是將網(wǎng)絡(luò)事件與套接字集合關(guān)聯(lián),有網(wǎng)絡(luò)事件發(fā)生的套接字保留在集合中,無網(wǎng)絡(luò)事件發(fā)生的套接字被從集合中清除。select有“篩選”之意,即將有網(wǎng)絡(luò)事件發(fā)生的套接字“篩選”出來!Select函數(shù)本身是阻塞函數(shù),使用它可以在一個線程中出力多個套接字。select模型使那些想避免在套接字調(diào)用過程中被無辜“鎖定”的應(yīng)用程序,采取一種有序的方式,同時進(jìn)行對多個套接字的管理。
3、設(shè)計(jì)這個函數(shù),唯一的目的便是防止應(yīng)用程序在套接字處于鎖定模式中時,在一次I/O綁定調(diào)用(如send或recv)過程中,被迫進(jìn)入“鎖定”狀態(tài);同時防止在套接字處于非鎖定模式中時,產(chǎn)生WSAEWOULDBLOCK錯誤。四實(shí)驗(yàn)方法及步驟 1.程序設(shè)計(jì)步驟(1)初始化Winsock庫(2)創(chuàng)建監(jiān)聽套接字(3)綁定套接字到本地機(jī)器(4)進(jìn)入監(jiān)聽模式2.程序流程圖3.關(guān)鍵源碼的解析(1)fd_set fdSocket;/ 所有可用套節(jié)字集合FD_ZERO(&fdSocket); /將fdSocket初始化成空集合FD_SET(sListen, &fdSocket); /將套接字sListe
4、n加入到fdSocket(2)fd_set fdRead = fdSocket; /將fdSocket賦值給fdReadint nRet = :select(0, &fdRead, NULL, NULL, NULL);/此處的select保留發(fā)生網(wǎng)絡(luò)事件的套接字,去除無響應(yīng)的套接字。(3)通過將原來fdSocket集合與select處理過的fdRead集合比較,/ 確定都有哪些套節(jié)字有未決I/O,并進(jìn)一步處理這些I/Ofor(int i=0; i<(int)fdSocket.fd_count; i+)if(FD_ISSET(fdSocket.fd_arrayi, &fdR
5、ead) if(fdSocket.fd_arrayi = sListen)/ (1)監(jiān)聽套節(jié)字接收到新連接if(fdSocket.fd_count < FD_SETSIZE) /FD_SELECT為64 sockaddr_in addrRemote;int nAddrLen = sizeof(addrRemote);SOCKET sNew = :accept(sListen, (SOCKADDR*)&addrRemote, &nAddrLen);FD_SET(sNew, &fdSocket);printf("接收到連接(%s)n", :inet
6、_ntoa(addrRemote.sin_addr);第一次循環(huán)執(zhí)行的是sListen套接字,第二次循環(huán)執(zhí)行是sNew套接字;第二次循環(huán)fdSocket集合中存在sListen和sNew兩個套接字,fdRead集合中存在3中情況:sListen在sNew不在;sListen不在sNew在;sListen在sNew都在五實(shí)驗(yàn)數(shù)據(jù)記錄及分析客戶端使用本地回環(huán)地址127.0.0.1進(jìn)行測試,測試結(jié)果正確。六實(shí)驗(yàn)總結(jié)這次的實(shí)驗(yàn)是SELECT I/O 模型服務(wù)端的程序?qū)崿F(xiàn),通過本次實(shí)驗(yàn),讓我對select模型有了更好的認(rèn)識和理解。之前的實(shí)驗(yàn)都是關(guān)于套接字有關(guān)的內(nèi)容,但套接字都是阻塞的,不能同時處理多個連
7、接,這次的select就很好的解決了這個問題?,F(xiàn)在一個線程可以出力多個套接字,會在得到具體的通知后調(diào)用響應(yīng)的函數(shù)。 而且select在阻塞和非阻塞模式下都能運(yùn)行。這次的改進(jìn)在編程史上是一次變革,同樣對于我們同學(xué)也有了很好的啟發(fā),有些東西是在不斷的改進(jìn)中才能得到提高,對于一些事物我們在知道了它的不足之處之后想辦法彌補(bǔ)就是進(jìn)步!教師評閱:90-95分:實(shí)驗(yàn)課前做了充足的準(zhǔn)備工作,與專業(yè)相關(guān)知識能緊密聯(lián)系。實(shí)驗(yàn)報(bào)告條理清晰,書寫規(guī)范,圖文并茂,報(bào)告內(nèi)容全面,主要內(nèi)容闡述詳細(xì)。認(rèn)識體會深刻,起到了實(shí)驗(yàn)的目的。80-85分:實(shí)驗(yàn)課前做了充足的準(zhǔn)備工作,與專業(yè)相關(guān)知識能較緊密聯(lián)系。實(shí)驗(yàn)報(bào)告條理清晰,書寫規(guī)范,圖文并茂,報(bào)告內(nèi)容較全面,主要內(nèi)容闡述較詳細(xì)。認(rèn)識體會較深刻,達(dá)到了實(shí)驗(yàn)的作用。70-75分:實(shí)驗(yàn)課前準(zhǔn)備較充足,與專業(yè)相關(guān)知識能基本能聯(lián)系,實(shí)驗(yàn)報(bào)告條理清晰,書寫較規(guī)范,報(bào)告內(nèi)容較全面,能用部分圖片展示相關(guān)內(nèi)容,主要內(nèi)容闡述較詳
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國油套管行業(yè)供需狀況及投資戰(zhàn)略分析報(bào)告
- 2024-2030年中國汽車配套塑料行業(yè)市場運(yùn)營模式及未來發(fā)展動向預(yù)測報(bào)告
- 2024年家用塑膠墊項(xiàng)目規(guī)劃申請報(bào)告范稿
- 2024年現(xiàn)場顯示儀表項(xiàng)目規(guī)劃申請報(bào)告范稿
- 2024-2030年中國水泥行業(yè)市場需求情況及投資效益預(yù)測報(bào)告
- 2022年大學(xué)電氣信息專業(yè)大學(xué)物理下冊期末考試試題C卷-附解析
- 2022年大學(xué)機(jī)械專業(yè)大學(xué)物理二月考試卷B卷-附解析
- 2022年高考大題集訓(xùn)《以大氣為核心的自然要素整合題》(解析版)
- 2022年大學(xué)植物生產(chǎn)專業(yè)大學(xué)物理下冊模擬考試試卷C卷-附解析
- 2022年大學(xué)環(huán)境與安全專業(yè)大學(xué)物理二月考試題D卷-附解析
- 成人疝護(hù)理查房課件
- 東北林業(yè)大學(xué)電子電工學(xué)21-22年階段一考試試卷-答案
- 產(chǎn)品設(shè)計(jì)-淺談智能藍(lán)牙音響的外觀創(chuàng)新設(shè)計(jì)
- 2024屆重慶市永川區(qū)物理高一第一學(xué)期期中質(zhì)量檢測試題含解析
- 傳統(tǒng)節(jié)日文化在幼兒園課程中的應(yīng)用研究 論文
- 瀝青改色路面修補(bǔ)施工方案
- 香菇種植示范基地項(xiàng)目可行性策劃實(shí)施方案
- 混凝土硫酸鹽侵蝕基本機(jī)理研究
- 《機(jī)械設(shè)計(jì)基礎(chǔ)A》機(jī)械電子 教學(xué)大綱
- 水工巖石分級及圍巖分類
- 斜井敷設(shè)電纜措施
評論
0/150
提交評論