RealVNC如何工作?

xRo*_*bot 3 vnc

我想知道RealVNC远程查看器的工作原理.

它经常实时向客户端发送屏幕截图吗?

还是使用其他方法?

cdh*_*wie 8

作为一个非常高级的概述,有两种类型的VNC服务器:

  1. 屏幕抓取.这些服务器将当前显示捕获到缓冲区,将其与客户端状态进行比较,并发送客户端不同的矩形.
  2. 胡克辅助.连接到显示更新过程,当显示管理器或OS更改屏幕时,将通知这些服务器.然后,他们可以使用该信息仅将更改的矩形发送到客户端.

在这两种情况下,它实际上都是屏幕更新流; 但是,只有屏幕的更改区域才会传输到客户端.根据所使用的VNC协议的版本,也可以压缩这些更新.

(请注意,客户端可以随时请求完整的屏幕更新,但如果整个屏幕发生更改,服务器将自行执行此操作.)

此外,屏幕更新不是唯一传输的内容.服务器可以使用单独的通道发送剪贴板更新和鼠标位置更新(因为远程机器上的物理用户也可以移动鼠标).


Ela*_*fer 5

协议的显示侧基于单个图形基元:"将矩形像素数据放置在给定的x,y位置".乍一看,这似乎是绘制许多用户界面组件的低效方式.然而,允许对像素数据进行各种不同的编码使我们在如何权衡各种参数(例如网络带宽,客户端绘制速度和服务器处理速度)方面具有很大的灵活性.这些矩形的序列使帧缓冲更新(或简单地更新).更新表示从一个有效帧缓冲状态到另一个有效帧缓冲状态的变化,因此在某些方面类似于视频帧.更新中的矩形通常是不相交的,但不一定是这种情况.

请阅读此处以了解更多信息