<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于IOCP的遠程屏幕監控系統

基于IOCP的遠程屏幕監控系統

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

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


關(guān)鍵詞: 監控系統 屏幕 遠程 IOCP 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>