UltraVNC UltraVNC logo


UltraVNC, as their site shouts, offers "Remote Control Software for all", well at least for all PC (Windows) users!

Take care of the 'Google Ads' downloads - we all understand the need to earn money, but the google advertising stuff is particularly prominent - it is almost the first thing you read. I 'accidentally' downloaded  the 'LogMeIn' product first, before I got to the UltraVNC downloads, which are on the right ;=((

Being a programmer, and thus have all the available tools, I downloaded the 'Ultr@VNC 1.0.2 Source code archive' zipped source from http://www.uvnc.com/download/index.html and set about compiling it myself. Since I wanted to connect to an Apple machine, running xserver, which already has an Apple Remote Desktop VNC Server, I only compiled the vncviewer from that source.

Initially, it would NOT stay connected. After connection and authentication, the initial video screen would commence to arrive, then it would abort, indicating error number 10054. The WinError.h file indicates this is 'An existing connection was forcibly closed by the remote host.'. Why was the 'host' closing the connection?

I enabled the file log, increased the messages to the file log, and add a DumpHex log service, to track down this problems. It happened consistently while the read thread was reading the first screen update. The vncviewer was sending a second pixel format and encoding message to the MAC VNC Server, and thereafter the MAC would close, thus the vncviewer would ABORT.

By adding a new variable, m_onlyOneFormMsg, and only sending ONE pixel format and encoding message to the server, and in Options..., un-checking 'Auto select best settings', and checking 'Viewer Scale Auto' I got a solid connection, with a great screen view.  But I am not exactly sure this 'duplicate' message was the absolute cause ... suffice it to say, my modified vncviewer is working great. I was able to anything and everything on the remote MAC, as if I was sitting at the keyboard ...

My first attempt to compile it was using the latest tool - Microsoft Visual C++ NET 3005 Express Edition (MSVC8) - and it showed a LOT of warnings, and some errors. A quick test compile in MSVC6 compiled fine, so a few changes in the code were to also 'accommodate' MSVC8 ...

This is a lovely image of the MAC desktop, windowed on my desktop, with its About open ...

Connected to the MAC
Click to load full image

This is a test server half a world away ... I am in Paris, France, and this server is in Sydney, Australia ... the screen updates are quite slow, even though both machines are connected to broadband at T1 (1.5 MB/sec) or better, so you have to HAVE PATIENCE. When you click on something, I have been informed by a friend watching the server in Sydney, that the MAC responds almost immediately, but it can take up to 30 seconds, or more, for me to be able to fully see, and interact with the changed screen here in Paris ...

However, despite the good broadband speeds, the VNC Viewer Status window only showed 33-67 kbit/s, using XORZlib, Cache encoder. Of course it all worked BEST in my fastest machine, a Dell Dimension DXP061, with an Intel Core 2 CPU 6400 at 2.13Ghz, running XP Media Center Edition. It also ran, in an XP Pro machine, with Pentium 4 CPU at 3.00 GHz, and a much older Windows 98 machine, although in this latter machine there were some small screen image aberrations sometimes.

*** All in all, a great VNC Viewer ***


Of course I would fully recommend you download and use the binaries (EXE) provided on the official UltraVNC site, but if you really wish to try my compiled version, then download, and unpack this zip (MD5 5d840d78b1721dfe0ba8064a1e672afa). Always be WARNED of running EXE files from the WEB. And this text file (uvncdiff.txt) contains a diff to the 1.0.2 vncviewer source, should you want to compile you own from my modified source.

top -|- index

checked by tidy   Valid HTML 4.01 Transitional