<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 基于IOCP的遠(yuǎn)程屏幕監(jiān)控系統(tǒng)

          基于IOCP的遠(yuǎn)程屏幕監(jiān)控系統(tǒng)

          作者: 時(shí)間:2011-08-22 來源:網(wǎng)絡(luò) 收藏

          摘要:利用Windows提供的完成端口()模型,實(shí)現(xiàn)C/S模式下監(jiān)控服務(wù)器同時(shí)對大量并發(fā)客戶進(jìn)行監(jiān)控的功能,可以根據(jù)需要決定是否開始控制。用對多線程進(jìn)行調(diào)度和管理,高效地利用系統(tǒng)資源。并且給出了整個(gè)系統(tǒng)的網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)過程。
          關(guān)鍵字:;多線程;監(jiān)控

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

          1 遠(yuǎn)程屏幕的總體結(jié)構(gòu)
          在Windows系統(tǒng)中,對于大型的服務(wù)器應(yīng)用一般設(shè)計(jì)為C/S模式,通過在客戶端和服務(wù)器之間建立網(wǎng)絡(luò)連接來實(shí)現(xiàn)信息的傳輸。對于服務(wù)器來說,在同一時(shí)間可能需要監(jiān)控多個(gè)客戶端屏幕,在遠(yuǎn)程屏幕的大致結(jié)構(gòu)如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/161546.htm

          a.JPG


          由被監(jiān)控的客戶端捕捉屏幕圖像,經(jīng)過壓縮之后實(shí)時(shí)地傳輸給服務(wù)器,服務(wù)器打開一個(gè)窗口,并將收到的客戶端屏幕圖像數(shù)據(jù)顯示在該窗口中,如需對客戶端進(jìn)行控制,則服務(wù)器端將該窗口中捕捉到的鼠標(biāo)鍵盤消息發(fā)送到客戶端,客戶端收到此消息后模擬出鼠標(biāo)鍵盤點(diǎn)擊事件,實(shí)現(xiàn)遠(yuǎn)程控制。采用IOCP機(jī)制,只需要為數(shù)不多的幾個(gè)線程就同時(shí)為多個(gè)客戶端提供服務(wù),并且效率遠(yuǎn)高于其它網(wǎng)絡(luò)模型。

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


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();