x11vnc

x11vnc can also poll non-X11 frame buffer devices, such as webcams or TV tuner cards, iPAQ, Neuros OSD, the Linux console, and the Mac OS X graphics display.

Instead, it uses the existing X11 display shown on the monitor of a Unix-like computer in real time, unlike other Linux alternatives such as TightVNC Server.

However, it is possible to use Xvnc or Xvfb to create a 'virtual' extra display, and have x11vnc connect to it, enabling X-11 access to headless servers.

[4] An SSL Java VNC viewer applet is provided that enables secure connections from a web browser.

x11vnc compares the X server's frame buffer against its copy to see which pixel regions have changed (and hence need to be sent to the VNC viewers.)

If the X11 DAMAGE extension is present, x11vnc uses it to provide hints where to focus its polling, thereby finding changes even more quickly and also lowering the system load.

Sometimes this saves sending a technician to a remote site or allows users to control equipment from their workstation or laptop.

When creating the RFB frame buffer in this mode, x11vnc allocates a very large scratch region below the top portion used for the actual (on-screen) pixel data.

x11vnc can then use the RFB CopyRect command to instruct the viewer to move rectangles of pixel data into and out of the scratch region.

In this way x11vnc can manage the scratch region to store and retrieve pixel data without having to resend it over the network.

Since it uses the existing RFB CopyRect command, the scheme will work with any (i.e. unmodified) VNC viewer.

SSVNC 1.0.29 connected to a remote Debian 7 Linux Xsession