Everything you will ever want to know about the remote desktop controllers on the iPhone - Part II

Continued from HERE.


Automatic discovery of remote desktops on the same LAN?: the Jaadu apps and Mocha VNC support automatic discovery of local desktop computers. Note that in order for this to work, you must run Jaadu VNC Connect or Jaadu RDP Connect on the same desktop. They will keep broadcasting a message to the local network that there is a VNC / RDP server listening on these devices. Note that these broadcast messages are sent out even when the VNC server is shut down or stopped - or the RDP service disabled; that is, these three remote controller clients will find these desktops even then. Strangely, clients do find these desktops even after stopping Jaadu RDP / VNC Connect.

These two, protocol-specific apps (Jaadu RDP / VNC Connect) do other things as well. If the router you’re connecting to the internet is a uPnP-capable one, it tries to reconfigure it to port forward the VNC / RDP ports so that (from the Internet) incoming requests are passed right to the VNC / RDP server. This is also a great feature – you don’t need to manually do this kind of a configuration, which is, especially for non-geeks, is surely big help.

Note that if your router is behind a firewall (which is pretty common in an enterprise environment), these two Jaadu apps won’t be able to provide you with a direct IP to your desktops. You’ll see this right away: it’ll display an error message. Nevertheless, local discovery will still work in the same subnetwork – and, there, the auto-discovery support of the Jaadu apps (and Mocha VNC) is a god-send. You won’t need to check (with “ipconfig” or by just hovering the cursor above the VNC server, if you plan to use VNC) the current IP of your desktop after moving it to another network and enter the new IP into your iPhone. Any changes to the IP addresses will be automatically detected by the iPhone clients – all you need to do is tapping the discovered desktop(s) in the listing and you’re set. (They’re correctly recognized because the computername is also listed.)

Multimedia: Sound redirection from the desktop to the client (and, possibly, vice versa): you may also want to listen to what the remote desktop is playing. While you most probably won’t want to use remote the, for this reason, highly inefficient remote desktop control protocols for “traditional” multimedia transfer (there are far better means for this; for example, Orb), being able to hear what’s going on may be of paramount importance when you, for example, access the Web browser on your desktop to, say, watch a Flash video otherwise unplayable on the iPhone. (Note that not even the latest Flash players only available for jailbroken devices support playing back a lot of Flash videos on the Web).

Interestingly, the only desktop controller application, Wyse PocketCloud, to support thin client Web browsing a la SkyFire doesn’t transfer audio to the client either; this way, it severely hampers its usability. I can only hope the developers of the, otherwise, much more decent controller apps (e.g., Jaadu) implement some kind of a Web browser capability too. As Jaadu RDP already supports audio transfer, it’d be highly useful together with a nice thin client Web browser like that of Wyse PocketCloud.

Possible to start sound apps on desktop?: on some competing platforms (most importantly, Windows Mobile), some RDP applications didn’t even let users start applications emitting sound at all. While you may argue there isn’t much point in starting such applications when the client can’t deliver sound at all to your iPhone, there are cases when this can be a problem; for example, when remotely administering radio / audio recorder or transcoder applications. This can be very important when you maintain for example a netradio station or just want to record one without a direct stream recorder tool like WMRecorder.

The Special client-side input group elaborates on whether, in addition to sending the standard left clicks to the desktop, it’s possible to do the same to more elaborate mouse events: right-clicks, double clicks, mouse dragging, scrolling with the mouse wheel and the like. Also the question of being able to just “hover” the cursor anywhere is discussed in relation to this part.

Right clicks: elaborates on whether right clicks are supported. As you can see, all controller apps support this, except for the free (lite) versions of the two (RDP and VNC) Mocha clients.

Double left clicks: all controllers support double left clicks (for example, to quickly highlight the current word / paragraph in a Web browser or text processing application).

Tap-and-hold (like moving windows around): you can drag the cursor in most applications; WinAdmin and the two free Mocha apps being the exceptions.

Scroll wheel: particularly in a remote desktop control situation can become the scroll wheel emulation really handy. Then, to scroll around the current document (Web page etc.), you won’t need to access the scrollbar on the right at all every time you want to scroll. Support for this (which also exists in all the recommended clients) is pretty common. The exceptions are iRdesktop, PocketCloud and WinAdmin – and, of course, the lite versions of the two Mocha applications.

Special keys: unfortunately, not all remote desktop controller applications provide support for all Windows (or Mac) keys available on a standard keyboard. Some (iRdesktop, PocketCloud, WinAdmin and the free versions of the Mocha apps) even only offer the standard built-in on-screen keyboard of the iPhone – and almost nothing else. These become useless when you want to emulate e.g. function key keypresses.

National characters : unfortunately, support for sending accented characters is pretty scarce. The best behaving application in this respect is Jaadu RDP; the other applications behave far worse. Some are only capable of sending Western accented characters to the desktop (that is, accented characters of Western languages only but not even those of East-Euopean ones, let alone Hebrew, Russian, Arabic and oriental languages like Japanese and Chinese).

Unfortunately, in VNC, the situation isn’t helped by enabling “Japanese” in the “Keyboard & Mouse” group in Ultra/WinVNC – not even Jaadu VNC will be able to transfer anything non-Western (including even Japanese characters).

Is it possible to "hover" the cursor? and Server-side tooltips displayed? : you may want to position the mouse cursor without actually sending a click so that, among other things, you can see additional information – for example, the address of a Web link; the description of a GUI icon and the like. All the recommended desktop controllers support this – actually, all the ones that (also) have a Cursor mode.

Cursor tracking?: I've also listed whether remote controllers are dynamically able to follow the cursor and the text input caret. Doing this is highly useful particularly with clients zoomed in and having lost the current position of the cursor / input caret. Unfortunately, none of the apps are capable of these while, on competing platforms, there are some that do; for example, on Windows Mobile, both pcAnywhere and z2.

The Resolution, zoom, color group contains information on everything related to the usable desktop resolutions, color depth and the like.

Can just use the default resolution / screen orientation (without having to resize)?: in this row, I’ve listed whether you are forced to resize the screen (or, at least, to provide some kind of a resolution) when using the desktop from a controller. As you can see, in RDP clients, you must resize the desktop - or, at least, enter / select a resolution at configuration time; if you’re lucky enough, you’ll be able to force the same resolution on the desktop as is the current one of the desktop to, later, after finishing the remote session and returning to the original, higher resolution, avoid having to press minimize / maximize with all the windows that have been opened during the remote session.

Explicitly (from the client) settable desktop resolutions: here, I’ve listed the usable resolutions (when you are forced to provide the target resolution, that is; the case with RDP clients).

As you can see, it’s Jaadu RDP that is (again) the best RDP client. None of the other RDP clients allow for entering a resolution manually – and, in general, their list of selectable resolutions is very poor. For example, Remote Desktop by MochaSoft only allows for selecting SVGA (800*600), XGA (1024*768) and SXGA – and nothing else. Similarly, none (!) of the applications allow for using UXGA (1600*1200) – except for, of course, Jaadu RDP, which does let you enter and use this resolution.

This also means that, should you want to stick with an uncommon (for example, UXGA or WUXGA) resolution on your remotely controlled desktop and don’t want your RDP clients to mess this up, resulting in your having to manually resize the windows so that they, again, remember the current size of the desktop, go for Jaadu RDP. Or, of course, consider moving to VNC / LogMeIn, which aren’t plagued with this problem.

Color depth: here, I’ve listed the available color depths. In a nutshell: the higher the color depth, the higher the data use – and so is the image quality, should you want to see images, photos, videos (and not just textual content) in their full glory and using as many colors as possible. As you can see, most of them support more than 8-bit colors; the only exception is Remote Desktop by MochaSoft 2.1. Nevertheless, even it will receive a 16-bit mode in the next upgrade, according to the developer.

Note that I haven’t listed strictly protocol-dependent tests like “More than one concurrent remote users using the same remote protocol accessing the same desktop?”. In a desktop: this is impossible with LogMeIn (which logs out the previous user at once) and RDP. VNC, however, does support it. Some VNC servers, that is. To enable this, in the Admin Properties of Ultra / WinVNC, check “Keep existing connections” (instead of the default “Disconnect all existing connections”) in the Multi Viewer Connections group. In the TightVNC server, go to Properties (it comes up by just left-clicking the icon) / Administration and select “Automatic shared sessions” instead of the default “Refuse concurrent connections”.

3. Verdict

As you can see, there is no clear winner. This is pretty much understandable: the different feature set and performance of each app is in no way as important as the capabilities and restrictions of the underling protocol. Let me show you some examples. The list is in no way exhaustive –above, I’ve elaborated far more thoroughly on the weaknesses / strengths of each protocol; here, I only give you some examples of the most frequently asked questions and discussed dilemmas.

It’s pretty silly to go for for example the RDP-based Jaadu RDP (because of its, say, audio transfer and copy/paste capabilities) and when your desktop you’d like to access from the outside is under a corporate firewall – it simply won’t work. Then, you’ll need to stick to LogMeIn – the only app that offers accessibility under even the harshest, most secured networking conditions.

Similarly, you won’t want to stick with any RDP client if you plan to do any kind of a cooperation between the user in front of the controlled desktop and the iPhone user that controls it. The former will be locked out and won’t be able to do / see anything. Here, only VNC and LogMeIn can be of any help.

If you want to let more than one remote user on your remote desktop, your only choice is VNC (just don’t forget to allow for multiple access: it must be manually enabled in Win, Ultra and TighVNC.)

If you do plan to frequently use your iPhone to access desktops in the same network (e.g., connected to the same Wi-Fi access point), you will want to avoid LogMeIn altogether. It, unfortunately, uses remote connections even when the remotely controlled desktop and the controller, the iPhone is in the same subnetwork and, therefore, a direct connection between them could be established. This means in these cases LogMeIn will be much-much slower than both VNC- and RDP-based, direct solutions.

Note that, generally, there isn’t much difference between these three protocols, data usage-wise. None of them is particularly sensitive to for example smooth scrolling, which, back in the Windows Mobile days, caused a lot of problems and excess data use.

That is, first, always decide which of the three protocols can at all fulfill your needs and whether the one you choose has stumbling blocks making one of them impossible. After you’ve decided what protocol to use, I recommend the following:

- If you select RDP, go for Jaadu RDP. Don’t really bother with iRdesktop by Thinstuff s.r.o., Wyse PocketCloud or WinAdmin by Carter Harrison. The latter two are pretty much overpriced for their capabilities and the first isn’t very good either. The Mocha client, particularly now that it will receive Windows 7 compatibility very soon, is a better buy – but, again, if you do want to frequently access desktops remotely, don’t try to save money – go for Jaadu RDP.

- If you select VNC, Jaadu VNC is by far the best (and, unfortunately, expensive) choice. If you in no way have that much money, I recommend VNC Pocket Office by Chillingo Ltd instead – it’s pretty cheap and has some unique capabilities (e.g., wake on LAN, support for server scaling and partial screen transfer). The Mocha VNC client is decidedly worse – as long as you don’t want to use its auto-discovery. (Nevertheless, the entire auto-discovery works way better and more reliably in Jaadu’s apps.)

- If you select LogMeIn, your choice is pretty limited: LogMeIn Ignition only.

4. Recommended reading

My similar article, discussing desktop controller apps on Windows Mobile. Note that it contain three parts – don’t forget to follow the link to the next one at the bottom of the page!

Master your iPhone in one minute a day:

Sign up to iPhone Life's Tip of the Day Newsletter and we'll send you a tip each day to save time and get the most out of your iPhone or iPad.

UPDATE (10/09/2009 17:20 CET): the promised, updated, now, Windows 7-compliant Mochasoft RDP client (which also has a free version with restricted input capabilities) has just been approved by Apple and is already available in the AppStore.

In addition to having received Windows 7-compliance, it also supports 16-bit color depth now. (Previously, it only supported 8 bits; that is, 256 colors.)

I’ve tested it with my Windows 7 notebook. I encountered no problems during the testing.

Master your iPhone in one minute a day: Sign up here to get our FREE Tip of the Day delivered right to your inbox.

<p>Werner Ruotsalainen is an iOS and Java programming lecturer who is well-versed in programming, hacking, operating systems, and programming languages. Werner tries to generate unique articles on subjects not widely discussed. Some of his articles are highly technical and are intended for other programmers and coders.</p>
<p>Werner also is interested in photography and videography. He is a frequent contributor to not only mobile and computing publications, but also photo and video forums. He loves swimming, skiing, going to the gym, and using his iPads. English is one of several languages he speaks.</p>