VNC图像更新机制详解:桌面区域记录与通知策略
需积分: 10 156 浏览量
更新于2024-09-14
收藏 47KB DOC 举报
VNC(Virtual Network Computing)是一种远程控制计算机图形的协议,它允许用户通过网络在一台计算机上看到并操控另一台计算机的桌面环境。VNC图像更新机制是其关键技术之一,确保了远程画面的流畅显示。这个机制主要包括两个核心部分:桌面区域更新记录策略和更新区域通知策略。
首先,桌面区域更新记录策略是通过wm_hooks(Windows消息钩子)实现的。当桌面上的窗口位置、大小、边框或者鼠标光标位置发生变化时,wm_hooks会捕获这些消息,并将其转换为VNC服务器可以识别的自定义消息,如WM_HK_WindowChanged、WM_HK_WindowClientAreaChanged等。这些消息随后被传递给WMHooksThread线程,由SimpleUpdateTracker负责跟踪新的变化区域,仅记录发生更新的部分,而不是整个屏幕数据,这大大减少了数据传输的负担。
接着,更新区域会被存储在SDisplay结构中,这是一个重要的数据结构,用于保存待发送的图像更新信息。每当需要更新桌面时,这些变化区域就会被复制到SDisplay中,以便后续处理和发送。
更新区域的通知机制有两种:push和poll。push方式是指服务器端主动进行检测,每10毫秒检查一次是否有新的变化,一旦发现就立即推送更新给客户端。这种方式确保了实时性,但可能会增加服务器的负担。而poll方式则是客户端驱动,客户端通过发送framebufferupdate请求,指定某个区域需要更新,服务器根据请求发送相应的图像数据,这种方式更加节省服务器资源,但可能造成延迟。
VNC图像更新机制是一个高效的远程桌面通信策略,它通过智能地记录和管理更新区域,实现了低带宽下高质量的远程桌面体验。理解这个机制有助于开发者优化VNC应用的性能,提高远程工作的便利性和效率。同时,深入研究VNC源码可以帮助我们更好地理解和定制这种远程控制技术,以适应不断发展的网络环境和用户需求。
118 浏览量
2009-06-24 上传
点击了解资源详情
2014-08-20 上传
2011-06-04 上传
2022-09-22 上传
2022-09-20 上传
2011-12-14 上传
2011-06-03 上传
hbdongfeng
- 粉丝: 3
- 资源: 21
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫