《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于IOCP的遠程屏幕監控系統
基于IOCP的遠程屏幕監控系統
陳 建,許 學,王海兵
摘要: 利用Windows提供的完成端口(IOCP)模型,實現C/S模式下遠程屏幕監控服務器同時對大量并發客戶進行屏幕監控的功能,可以根據需要決定是否開始遠程控制。用IOCP對多線程進行調度和管理,高效地利用系統資源。并且給出了整個系統的網絡設計與實現過程。
Abstract:
Key words :

    隨著網絡技術的不斷發展,遠程桌面共享技術已經越來越多地運用于遠程辦公、教育培訓、遠程監控等方方面面。微軟在Windows NT 3.5中引入了IOCP(I/O Completion Port,I/O完成端口),該模型被廣泛應用于大規模的網絡服務器之上,遠程屏幕監控服務器利用IOCP可以同時有效地對多個客戶端屏幕進行監控。

1 遠程屏幕監控系統的總體結構
    在Windows系統中,對于大型的服務器應用一般設計為C/S模式,通過在客戶端和服務器之間建立網絡連接來實現信息的傳輸。對于服務器來說,在同一時間可能需要監控多個客戶端屏幕,在遠程屏幕監控系統的大致結構如圖1所示。

a.JPG


    由被監控的客戶端捕捉屏幕圖像,經過壓縮之后實時地傳輸給服務器,服務器打開一個窗口,并將收到的客戶端屏幕圖像數據顯示在該窗口中,如需對客戶端進行控制,則服務器端將該窗口中捕捉到的鼠標鍵盤消息發送到客戶端,客戶端收到此消息后模擬出鼠標鍵盤點擊事件,實現遠程控制。采用IOCP機制,只需要為數不多的幾個線程就同時為多個客戶端提供服務,并且效率遠高于其它網絡模型。

2 IOCP機制的基本原理
    IOCP是性能最好的一種I/O模型。它是應用程序使用線程池處理異步I/O請求的一種機制。在處理多個并發的異步I/O請求時,以往的模型都是在接收請求時創建一個線程來應答請求。這樣就有很多的線程并行地運行在系統中。而這些線程都是可運行的,Windows內核花費大量的時間在進行線程的上下文切換,并沒有多少時間花在線程運行上。再加上創建新線程的開銷比較大,所以造成了效率的低下。
    IOCP的目標是實現高效的服務器程序,它克服了一般并發模型的不足,其方法是在初始化完成端口的時候創建一定數量的服務線程。當系統完成I/O操作之后,向服務器完成端口發送I/O completion packet,此時線程池中的線程在完成端口上排隊等待I/O操作的完成。如果在完成端口上沒有收到I/O completion packet,這些線程處于睡眠狀態。否則,這些線程按照后進先出(LIFO)的方式被喚醒,并完成后續數據處理操作。

3 服務器設計
    遠程屏幕監控服務器的核心功能是將接收到的客戶端的屏幕圖像顯示到一個服務器端窗口中,服務器通過此窗口對客戶端進行遠程控制。為了提高系統可靠性,網絡協議采用面向連接的TCP協議,利用TCP協議中的擁塞避免以及超時和差錯重傳機制可以確保數據在傳輸的可靠性。
3.1 服務器監聽套接字的實現
    在服務器端建立IOCP模型時,首先需要建立一個監聽套接字,對于監聽套接字,并不將它與完成端口相關聯,而是調用WSAEventSelect為監聽套接字注冊FD_ACCEPT網絡事件。該函數的聲明如下:
    b.JPG
    之后創建一個監聽線程,在此線程中可以循環調用WSAWaitForMultipleEvents等待事件對象被觸發。在該函數正確返回之后,繼續調用WSAEnumNetworkEvents函數列舉出發生在套接字上的事件,如果是FD_ACCEPT事件,則接受該連接,并將新建的套接字與創建的完成端口相關聯,并在此套接字上調用WSARecv投遞接收數據的請求。
3.2 IOCP模型的實現
    要建立IOCP模型,需要在服務器啟動監聽線程時,首先創建一個完成端口對象,通過調用CreateIoCompletionPort來實現,之后調用GetSystemlnfo函數獲得CPU的數量,根據CPU的數量創建一定數量的服務線程在此端口上等待完成事件的通知,一般來說,服務線程的數量大約是CPU數量的2倍。
    當監聽套接字接收到一個新的連接時,再次調用CreateIoCompletionPort將接收套接字與我們先前創建的完成端口綁定。這里的完成鍵pComleKey是一個指向ClientContext結構體的指針,該結構體包含了當前套接字的一些相關信息,接受和發送數據所用的緩存。接下來需要定義一個與I/O操作相關的結構體,保存與I/O操作相關的信息。該結構體的定義如下:
    c.JPG
    其中m_ioType表示I/O操作的類型,接下來需要調用WSARecv發起重疊的I/O操作請求,并將向前創建的OVERLAPPEDPLUS結構體作為參數傳遞進去。具體如下:
    d.JPG
    服務線程被啟動后,調用GetQueuedCompletionStation函數等待重疊I/O操作的完成,當重疊I/O操作完成時,I/O操作完成通知包被發送到完成端口上,此時該函數返回,完成通知包包含的信息有已傳輸的字節數、完成鍵和重疊結構。根據返回的I/O操作的具體信息,調用相應的處理函數對結果進行處理。在處理完數據之后,需要再次向完成端口投遞I/O操作請求。我們可以通過調用PostQueuedCompletion Status函數來向完成端口發送一個I/O操作完成通知包。圖2是整個網絡傳輸的工作流程圖。

e.jpg



7 結束語
    在Windows7環境下建立服務器運行平臺,100M局域網內,7個客戶同時連接到服務器,服務器能正常運行,同時打開7個客戶端的屏幕監控窗口,客戶端屏幕圖像顯示無明顯延遲,需要時可正常開啟遠程控制功能。基于IOCP的服務器理論上可以連接成百上千個客戶端,但是由于網絡帶寬,硬件配置等限制,連接數量往往有一定的限制。基于IOCP的服務器程序優點在于能夠對大量的客戶連接進行有效管理,資源利用率高,具有易擴展性,隨著硬件配置的提高,無需改動程序,其性能就可以隨之提升。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲伊人伊色伊影伊综合网| 欧美影院视频| 欧美午夜精品久久久久久浪潮| 久久婷婷麻豆| 久久大逼视频| 欧美一级午夜免费电影| 亚洲一区二区伦理| 亚洲午夜伦理| 一区二区三区四区国产精品| 亚洲看片免费| 亚洲另类一区二区| 亚洲美女视频网| 亚洲麻豆av| 99精品视频免费观看| 亚洲精品中文字| 日韩网站在线看片你懂的| 亚洲精品欧美一区二区三区| 亚洲国内精品| 亚洲欧洲综合另类| 日韩午夜在线视频| 中文日韩欧美| 亚洲欧美999| 午夜精品免费| 欧美一区二区免费| 欧美在线3区| 久久精品国产一区二区三| 久久精品99国产精品酒店日本| 久久riav二区三区| 久久精品中文字幕免费mv| 久久精品国产欧美激情| 久久美女性网| 欧美成人高清| 欧美精品三级| 欧美四级剧情无删版影片| 国产精品高潮呻吟久久av黑人| 国产精品区一区二区三区| 国产欧美一区二区三区在线看蜜臀| 国产日韩在线看片| 好看的日韩视频| 亚洲成人自拍视频| 亚洲人在线视频| 一区二区三区导航| 亚洲欧美日韩在线高清直播| 翔田千里一区二区| 亚洲三级视频| 亚洲午夜成aⅴ人片| 欧美一区二视频在线免费观看| 久久深夜福利免费观看| 欧美国产日韩视频| 国产精品久久久久aaaa| 国产综合色在线| 亚洲国内精品| 亚洲一区中文字幕在线观看| 欧美在线观看你懂的| 亚洲精品久久久久久久久久久久| 一本一本久久| 久久高清一区| 欧美激情精品久久久久久蜜臀 | 99视频一区| 亚洲欧美日韩第一区| 久久琪琪电影院| 欧美日韩成人| 国产亚洲观看| 亚洲精品一区二| 欧美一区二区三区播放老司机| 亚洲人成网站影音先锋播放| 亚洲女爱视频在线| 美女视频一区免费观看| 国产精品白丝黑袜喷水久久久| 狠狠狠色丁香婷婷综合久久五月| 亚洲精品欧美日韩| 久久成人一区| 亚洲一区精品在线| 欧美jjzz| 国产麻豆一精品一av一免费| 亚洲日本成人网| 欧美影院一区| 亚洲一区久久久| 欧美aaa级| 国产欧美精品日韩精品| 亚洲精品日韩综合观看成人91| 性久久久久久久久| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产高清视频| 亚洲欧美成人一区二区三区| 你懂的国产精品永久在线| 国产麻豆9l精品三级站| 日韩午夜在线视频| 亚洲高清免费在线| 午夜一区二区三区在线观看| 欧美精品三区| 在线观看亚洲精品视频| 午夜精品久久久久| 亚洲视频一二区| 欧美成人高清| 狠狠色狠狠色综合日日tαg| 亚洲午夜三级在线| 亚洲视频久久| 欧美久久视频| 亚洲激情在线观看| 亚洲第一黄色| 久久激情五月婷婷| 国产精品一区久久| 亚洲视频一区二区| 99视频在线精品国自产拍免费观看| 久久亚洲精品视频| 国产日韩av高清| 亚洲一级黄色片| 亚洲一区二区毛片| 欧美精品电影| 亚洲激情另类| 亚洲第一页在线| 久久婷婷综合激情| 国产婷婷色一区二区三区四区| 亚洲在线黄色| 欧美一区二区免费| 国产精品任我爽爆在线播放| 亚洲线精品一区二区三区八戒| 亚洲一二三级电影| 欧美性片在线观看| 亚洲最新在线| 亚洲一区二区黄色| 国产精品福利在线观看| 一区二区三区视频在线看| 在线一区日本视频| 欧美久久久久免费| 亚洲精品欧美专区| 一本一本久久| 欧美午夜理伦三级在线观看| 亚洲最黄网站| 亚洲主播在线观看| 国产精品久久午夜| 亚洲欧美日韩另类| 久久高清福利视频| 国内视频一区| 亚洲激情精品| 欧美二区在线播放| 亚洲国产一区视频| 99精品欧美一区二区蜜桃免费| 欧美精品国产精品| 99精品欧美一区| 午夜精品福利一区二区三区av| 国产精品自拍一区| 久久国产黑丝| 美女视频黄a大片欧美| 亚洲欧洲精品一区二区精品久久久| 一本色道久久综合| 国产精品激情av在线播放| 亚洲一区在线观看免费观看电影高清| 欧美亚洲在线视频| 韩国在线视频一区| 99re6这里只有精品| 欧美性一区二区| 欧美亚洲视频在线观看| 蜜桃伊人久久| 日韩一级片网址| 羞羞色国产精品| 国产综合在线看| 亚洲精品久久久久久久久久久久久 | 亚洲黄色在线看| 亚洲一区二区三区免费在线观看| 国产精品美女黄网| 久久精品免费电影| 欧美日韩国产三区| 亚洲制服欧美中文字幕中文字幕| 久久裸体艺术| 亚洲精品自在在线观看| 欧美一区二区三区视频在线| 精品动漫一区| 中文欧美在线视频| 黑人操亚洲美女惩罚| 洋洋av久久久久久久一区| 国产日本欧美一区二区三区| 亚洲人午夜精品| 国产伦精品一区二区三区免费| 亚洲人www| 国产精品日韩在线一区| 亚洲国产高清在线| 国产精品www色诱视频| 亚洲高清一区二| 国产精品va| 亚洲精品久久久久久久久久久久久 | 国产精品v片在线观看不卡| 亚洲第一成人在线| 国产精品福利在线| 亚洲日本一区二区| 国产日韩精品视频一区二区三区| 日韩一级网站| 国语自产精品视频在线看抢先版结局 | 欧美三级在线| 亚洲大片精品永久免费| 国产精品久久久久久久久久久久久 | 亚洲国产精品悠悠久久琪琪| 国产精品video| 91久久精品一区二区别| 国产伦精品一区二区三区视频孕妇| 日韩一级黄色大片| 激情视频亚洲| 欧美一区二区三区免费视| 亚洲精品一区二区三区婷婷月|