java
Java Remote Desktop (jrdesktop) is an open source software for viewing and/or controlling a distance PC.
Besides then screenshots, keyboard and mouse events transfer, jrdesktop includes many additional features (like: file transfer, data compression, color conversion, ...).
jrdesktop uses RMI (Remote Method Invocation) with SSL/TLS to establish a secured connection between the viewer and the server.