最近在做一个网络远程监控的程序。实现的功能和Pcanywhere差不多,可是在服务器端的资源占用率太高。
我的做法:在服务器端截图,压缩,发送到客户端,客户端在工作区显示截图,并且把所有在工作区的操作(键盘鼠标事件)都发送到服务器端,服务器程序把这些消息传给系统。
改进:1 改进响应速度(现在的响应速度为100ms),2 减少CPU的占有率。
是否有人做过这个方面的程序,希望不吝赐教。
我的做法:在服务器端截图,压缩,发送到客户端,客户端在工作区显示截图,并且把所有在工作区的操作(键盘鼠标事件)都发送到服务器端,服务器程序把这些消息传给系统。
改进:1 改进响应速度(现在的响应速度为100ms),2 减少CPU的占有率。
是否有人做过这个方面的程序,希望不吝赐教。
解决方案 »
- VC嵌入的OWC控件只支持到office2003,但界面需要office2007的图,求指点。。。
- qq游戏外挂制作问题
- 单机模拟成网络的测试工具
- 如何用VC编程对sql server进行过数据库管理的?
- 如何控制整个系统的音量?
- 拆分窗体中 改变试图顺序问题
- 一个小问题。有代码要在对话框显示后能执行,应该放在哪个函数中
- dde中回调函数应该放在那个位置阿,为什么我的老是出错
- 如何用vs2005导出工程的Makefile文件。
- dephi vs vc 如果老天再给一次机会,你会选择什么?
- 请教:CDC类绘图一个按钮?
- findnextfile和findfile如何配合?我怎么还是有问题呀?帮我一下,伙计们
传输要快. 不管是压缩也好,分块也好,缩放图象也好.总之传输要快.
响应
如果你是GDI抓图的话,CPU占用率高,可能是做了色深转换。
最好启动的时候修改成你抓图需要的色深。
最好的性价比是抓16bit的图像,我的眼睛还没看出过16bit和24/32bit的区别。
2. 参考microsoft 终端服务,看它调用了什么api,或许有些隐藏的东西我们不知道.
3. 也许驱动程序是个办法. 但绝对是不得已为之的办法.
有源代码的!
www.google.com
一搜就有!
我试过用它放电影的效果不好,不过比PCAnywhere好多了。
另外他可以选择几种编码格式。
有个好处它是跨平台的。
找到一个好软件Remote Administrator,此软件号称载局域网中可以达到100-500帧!(在我的10M局域网中几乎感觉不到延时)
它使用的是一种叫视频钩子的技术(Video Hook Driver Technology),大家猜一猜它是怎么做的?
这个程序是公司的,恐怕不太好给你。不过你可以到google上搜一下winvnc(谢谢 taianmonkey ^o^),这个开放源码的软件可比我做得好多了。发现winvnc还是有一些问题(在win32下),如有时候屏幕刷新不及时(特别是一些帮助文档 .hlp文件 按滚动条的时候客户端显示不对),希望大家能给出解决办法。谢谢了。
但是有两个很关键的问题:
1什么时候截图,2截哪一块图?
并不是所有时候都需要传输图像,只在服务器端屏幕有改变时需要截图传输,也不是整个屏幕都需要传输,只有屏幕发生变化的区域需要传输。
问题是windows的显示过程不是很清楚(起码小弟不知,望高手赐教),所以我们不能很精确的知道上面两个问题。 pcanywhere用到的应该是windows的钩子,做个小实验,在你的pcanywhere的服务器端打开windows的时钟,注意它的秒钟,它没有动!虽然下面的数字在走,但是它的秒钟没有动,说明了pcanywhere并没有整个屏幕截图传输,只传输了它认为发生了改变的部分(可惜这回它错了)。
我的意思是说,能不能通过从server端向client传server端屏幕上的信息,不传图,让client根据收到的信息自己生成图片!
你做的这个远程控制是用mfc,还是底层的winsock
能不能说一下都用了些什麽?
我想不传送图片是不太可能的,不知我是否理解了你的意思:你是否想只在两机之间传送windows的消息,然后让客户端自己生成窗口。
比如说我可以截获服务器的消息是打开了一个浏览器,我可以让我的客户端也打开一个浏览器,可是里面的内容呢。如果我需要改变浏览器让它显示和服务器一样的内容,这个这个好像很难哦。我的程序使用win api,winsock写的。
截图用的gdi函数,用direct好像性能提高并不明显。
我就是这个意思,我也感觉很难!还是对windows底层的东西不太清楚.
socket用的是阻塞模式还是非阻塞模式?开了多少线程?有没有用从属进程?
能不能说的详细一点,很想了解一下设计的想法!
现在server端的CPU的占有率高,只是由于截图造成的吗?
NetMeeting和终端服务都是用的这个
有源代码的给一份: [email protected]
3x