基于IOCP的遠(yuǎn)程屏幕監(jiān)控系統(tǒng)
其中m_ioType表示I/O操作的類型,接下來需要調(diào)用WSARecv發(fā)起重疊的I/O操作請(qǐng)求,并將向前創(chuàng)建的OVERLAPPEDPLUS結(jié)構(gòu)體作為參數(shù)傳遞進(jìn)去。具體如下:
服務(wù)線程被啟動(dòng)后,調(diào)用GetQueuedCompletionStation函數(shù)等待重疊I/O操作的完成,當(dāng)重疊I/O操作完成時(shí),I/O操作完成通知包被發(fā)送到完成端口上,此時(shí)該函數(shù)返回,完成通知包包含的信息有已傳輸?shù)淖止?jié)數(shù)、完成鍵和重疊結(jié)構(gòu)。根據(jù)返回的I/O操作的具體信息,調(diào)用相應(yīng)的處理函數(shù)對(duì)結(jié)果進(jìn)行處理。在處理完數(shù)據(jù)之后,需要再次向完成端口投遞I/O操作請(qǐng)求。我們可以通過調(diào)用PostQueuedCompletion Status函數(shù)來向完成端口發(fā)送一個(gè)I/O操作完成通知包。圖2是整個(gè)網(wǎng)絡(luò)傳輸?shù)墓ぷ髁鞒虉D。本文引用地址:http://www.ex-cimer.com/article/161546.htm
7 結(jié)束語
在Windows7環(huán)境下建立服務(wù)器運(yùn)行平臺(tái),100M局域網(wǎng)內(nèi),7個(gè)客戶同時(shí)連接到服務(wù)器,服務(wù)器能正常運(yùn)行,同時(shí)打開7個(gè)客戶端的屏幕監(jiān)控窗口,客戶端屏幕圖像顯示無明顯延遲,需要時(shí)可正常開啟遠(yuǎn)程控制功能。基于IOCP的服務(wù)器理論上可以連接成百上千個(gè)客戶端,但是由于網(wǎng)絡(luò)帶寬,硬件配置等限制,連接數(shù)量往往有一定的限制。基于IOCP的服務(wù)器程序優(yōu)點(diǎn)在于能夠?qū)Υ罅康目蛻暨B接進(jìn)行有效管理,資源利用率高,具有易擴(kuò)展性,隨著硬件配置的提高,無需改動(dòng)程序,其性能就可以隨之提升。
評(píng)論