基于IOCP的遠程屏幕監(jiān)控系統(tǒng)
其中m_ioType表示I/O操作的類型,接下來需要調(diào)用WSARecv發(fā)起重疊的I/O操作請求,并將向前創(chuàng)建的OVERLAPPEDPLUS結(jié)構(gòu)體作為參數(shù)傳遞進去。具體如下:

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