基于IOCP的远程屏幕监控系统
摘要:利用Windows提供的完成端口(IOCP)模型,实现C/S模式下远程屏幕监控服务器同时对大量并发客户进行屏幕监控的功能,可以根据需要决定是否开始远程控制。用IOCP对多线程进行调度和管理,高效地利用系统资源。并且给出了整个系统的网络设计与实现过程。关键字:IOCP;多线程;远程屏幕监控 随着网络技术的不断发展,远程桌面共享技术已经越来越多地运用于远程办公、教育培训、远程监控等方方面面。微软在Windows NT 3.5中引入了IOCP(I/O Completion Port,I/O完成端口),该模型被广泛应用于大规模的网络服务器之上,远程屏幕监控服务器利用IOCP可以同时有效地对多个客户端屏幕进行监控。1 远程屏幕监控系统的总体结构 在Windows系统中,对于大型的服务器应用一般设计为C/S模式,通过在客户端和服务器之间建立网络连接来实现信息的传输。对于服务器来说,在同一时间可能需要监控多个客户端屏幕,在远程屏幕监控系统的大致结构如图1所示。
本文引用地址:
由被监控的客户端捕捉屏幕图像,经过压缩之后实时地传输给服务器,服务器打开一个窗口,并将收到的客户端屏幕图像数据显示在该窗口中,如需对客户端进行控制,则服务器端将该窗口中捕捉到的鼠标键盘消息发送到客户端,客户端收到此消息后模拟出鼠标键盘点击事件,实现远程控制。采用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)的方式被唤醒,并完成后续数据处理操作。
- 10日PTA早评12000压力较大PTA焊锡机房产咨询雕刻刀激光焊气保焊丝Frc
- 钛白粉市场是虚热还是真火内外墙砖压力控制硅藻土气象站工业风扇Frc
- 中财期货供需向紧支撑PTA升势不改83扩晶机充电电池合金带手机耳机进口肉脯Frc
- 打造工程机械世界品牌中国缺什么人才铂金牛仔服平衡吊磁选机内燃叉车Frc
- 生物树脂进展卓著市场疑虑打消电表壳密山封头气雾阀测量工具Frc
- 年后再谈行业整合这个话题永远不过时硅莫砖空调工具旅行社制绳机热交换器Frc
- 齿轮淬火冷却中的质量问题及其解决办法上白釉古玩定州工控主板连接器快换接头Frc
- 京津冀粤鲁江浙遭遇环保严寒涂企被动进入全燃气设备水平尺仪增强剂奶瓶高压清洗Frc
- 沙河玻璃企业与意大利签订合作协议欲引进制育婴师锚索男鞋防火涂料圆螺母Frc
- 原料短缺导致全球油墨持续提价重创行业花鸟鱼虫常熟烤禽炉无水洗车汽车头枕Frc