在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 關 閉

      新聞中心

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

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

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

      3 服務器設計
      監(jiān)控服務器的核心功能是將接收到的客戶端的圖像顯示到一個服務器端窗口中,服務器通過此窗口對客戶端進行控制。為了提高系統(tǒng)可靠性,網(wǎng)絡協(xié)議采用面向連接的TCP協(xié)議,利用TCP協(xié)議中的擁塞避免以及超時和差錯重傳機制可以確保數(shù)據(jù)在傳輸?shù)目煽啃浴?br />3.1 服務器監(jiān)聽套接字的實現(xiàn)
      在服務器端建立模型時,首先需要建立一個監(jiān)聽套接字,對于監(jiān)聽套接字,并不將它與完成端口相關聯(lián),而是調用WSAEventSelect為監(jiān)聽套接字注冊FD_ACCEPT網(wǎng)絡事件。該函數(shù)的聲明如下:
      b.JPG
      之后創(chuàng)建一個監(jiān)聽線程,在此線程中可以循環(huán)調用WSAWaitForMultipleEvents等待事件對象被觸發(fā)。在該函數(shù)正確返回之后,繼續(xù)調用WSAEnumNetworkEvents函數(shù)列舉出發(fā)生在套接字上的事件,如果是FD_ACCEPT事件,則接受該連接,并將新建的套接字與創(chuàng)建的完成端口相關聯(lián),并在此套接字上調用WSARecv投遞接收數(shù)據(jù)的請求。
      3.2 模型的實現(xiàn)
      要建立模型,需要在服務器啟動監(jiān)聽線程時,首先創(chuàng)建一個完成端口對象,通過調用CreateIoCompletionPort來實現(xiàn),之后調用GetSystemlnfo函數(shù)獲得CPU的數(shù)量,根據(jù)CPU的數(shù)量創(chuàng)建一定數(shù)量的服務線程在此端口上等待完成事件的通知,一般來說,服務線程的數(shù)量大約是CPU數(shù)量的2倍。
      當監(jiān)聽套接字接收到一個新的連接時,再次調用CreateIoCompletionPort將接收套接字與我們先前創(chuàng)建的完成端口綁定。這里的完成鍵pComleKey是一個指向ClientContext結構體的指針,該結構體包含了當前套接字的一些相關信息,接受和發(fā)送數(shù)據(jù)所用的緩存。接下來需要定義一個與I/O操作相關的結構體,保存與I/O操作相關的信息。該結構體的定義如下:
      c.JPG


      評論


      相關推薦

      技術專區(qū)

      關閉