VNC Possibilities

Simon Wittams swittams "at" cix.compulink.co.uk
Wed, 25 Feb 1998 22:53:48 +0000


VNC is a pretty cool app. 

I had some probs with the X version of vncviewer ( seg faults), 
but a quick recompile sorted that. I think it was libc6, or something.

I've been thinking about possible new features:

Windows server: this could probably be better done as a graphics 
adaptor. (Are the win32 graphics drivers integrated across NT &95 yet? I 
don't think so...)This either incorporates (as another thread) or 
communicates with a VNC server. It could also pass the GDI commands 
along to an existing graphics card driver. This could be selected in an 
additional tab on the display properties box. This fake driver would 
have to interrogate the real driver in the same way the Win32 GDI does 
at present, then pass the information back to the true GDI when it 
itself is interrogated for capabilities. The problem with this lies in 
the fact that the graphics card may interpret some random graphics call 
( e.g. Direct3d stuff) windows makes that the  VNC server can't. This 
could be handled in two ways : 1. Ignore capabilities of the card that 
the VNC server cannot handle - a bit annoying if you have some hugely 
powerful 3d accelerator 2. Allow the graphics card to draw the bit of 
the screen that it can handle, and steal it in the usual way - probably 
better...

and of course headless windows boxes could just have no graphics card 
selected in the new tab... though some machines need  one to boot...

Protocol: Add an 'observer' mode .... uses ip multicast ( preserve 
bandwidth)  to display a desktop to multiple viewers. Good for training, 
and things like that..
Have a distinct password for observers. The connection response from the  
server needs to be different, then if the client is 'observer aware' it 
can send an acknowledgement signal, and then not send any more signals 
of input to decrease traffic. If the client does not respond as observer 
aware, then ignore all input signals from it, and use unicast for it, to 
preserve backwards compatibility.
The clients acknowledgement signal should also include the maximal 
transfer rate, so it only gets sent what it can handle... would probably 
incur a performance penalty on the server, as it would have to handle 
more than one multicast group, maybe needing whole screen refreshes more 
often than with single bandwidth...

In the distant future: add 3d & sound encodings - in order to port the 
whole environment? Both are hard. How would you catch these events? For 
sound : maybe another fake driver in win32, and a rerouting /dev/audio | 
mixer | dsp in unix (or NAS).... hmmm. 

Robert Wittams