基于IOCP的遠程屏幕監控系統
其中m_ioType表示I/O操作的類型,接下來需要調用WSARecv發起重疊的I/O操作請求,并將向前創建的OVERLAPPEDPLUS結構體作為參數傳遞進去。具體如下:

服務線程被啟動后,調用GetQueuedCompletionStation函數等待重疊I/O操作的完成,當重疊I/O操作完成時,I/O操作完成通知包被發送到完成端口上,此時該函數返回,完成通知包包含的信息有已傳輸的字節數、完成鍵和重疊結構。根據返回的I/O操作的具體信息,調用相應的處理函數對結果進行處理。在處理完數據之后,需要再次向完成端口投遞I/O操作請求。我們可以通過調用PostQueuedCompletion Status函數來向完成端口發送一個I/O操作完成通知包。圖2是整個網絡傳輸的工作流程圖。本文引用地址:http://www.104case.com/article/161546.htm
7 結束語
在Windows7環境下建立服務器運行平臺,100M局域網內,7個客戶同時連接到服務器,服務器能正常運行,同時打開7個客戶端的屏幕監控窗口,客戶端屏幕圖像顯示無明顯延遲,需要時可正常開啟遠程控制功能。基于IOCP的服務器理論上可以連接成百上千個客戶端,但是由于網絡帶寬,硬件配置等限制,連接數量往往有一定的限制。基于IOCP的服務器程序優點在于能夠對大量的客戶連接進行有效管理,資源利用率高,具有易擴展性,隨著硬件配置的提高,無需改動程序,其性能就可以隨之提升。
評論