UltraVNC
UltraVNC Server, UltraVNC Viewer, UltraVNC Repeater and UltraVNC SC | Official repository: https://github.com/ultravnc/UltraVNC
Top Related Projects
High performance, multi-platform VNC client and server
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
Android VNC remote desktop server for local networks
VNC client web application
FreeRDP is a free remote desktop protocol library and clients
Quick Overview
UltraVNC is an open-source remote desktop software that allows users to view and control a remote computer over a network connection. It is based on the VNC (Virtual Network Computing) protocol and offers additional features such as file transfer, chat functionality, and enhanced security options.
Pros
- Cross-platform compatibility (Windows, Linux, macOS)
- Advanced security features, including encryption and authentication
- File transfer capabilities between local and remote machines
- Active development and community support
Cons
- Primarily focused on Windows, with less robust support for other platforms
- User interface can be complex for novice users
- Some features may require additional setup or configuration
- Performance can be affected by network conditions and hardware limitations
Getting Started
To get started with UltraVNC:
- Download the UltraVNC installer from the official website: https://www.uvnc.com/downloads/ultravnc.html
- Install UltraVNC on both the server (computer to be controlled) and viewer (computer controlling) machines.
- On the server, run the UltraVNC Server and configure settings as needed.
- On the viewer, run the UltraVNC Viewer and enter the IP address or hostname of the server.
- Connect and authenticate to establish the remote desktop session.
For more detailed instructions and advanced configuration options, refer to the UltraVNC documentation: https://www.uvnc.com/docs/uvnc-user-manual.html
Competitor Comparisons
High performance, multi-platform VNC client and server
Pros of TigerVNC
- Cross-platform support (Windows, macOS, Linux)
- Better performance and image quality
- Active development and regular updates
Cons of TigerVNC
- Lacks some advanced features found in UltraVNC
- May require more setup and configuration
Code Comparison
TigerVNC (C++):
rfb::Region2D updateRegion;
updateRegion.assign_union(damage);
writer()->writeFramebufferUpdate(updateRegion, encodings);
UltraVNC (C++):
rfb::Region2D updateRegion;
updateRegion.assign_union(m_damage);
m_encoder->writeRect(updateRegion, m_encodings);
Both projects use similar approaches for handling framebuffer updates, but TigerVNC's code appears to be more streamlined and modern. TigerVNC also tends to have more consistent coding style and better documentation throughout its codebase.
TigerVNC is generally considered more suitable for cross-platform use and offers better performance, while UltraVNC provides some unique features specific to Windows environments. The choice between the two depends on the specific requirements of your project and the target platforms.
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
Pros of libvncserver
- Cross-platform support for multiple operating systems
- Extensive documentation and active community support
- Flexible and modular architecture for easier customization
Cons of libvncserver
- Potentially steeper learning curve for beginners
- May require more setup and configuration compared to UltraVNC
Code Comparison
UltraVNC (C++):
void ClientConnection::SendRFBMsg(rfbClientToServerMsg msg, UINT nLen)
{
if (m_socket != NULL)
m_socket->SendExact((char *)&msg, nLen);
}
libvncserver (C):
rfbBool rfbSendFramebufferUpdate(rfbClientPtr cl, sraRegionPtr updateRegion)
{
rfbFramebufferUpdateMsg *fu = (rfbFramebufferUpdateMsg *)cl->updateBuf;
fu->type = rfbFramebufferUpdate;
fu->nRects = 0;
return TRUE;
}
Both repositories provide VNC (Virtual Network Computing) functionality, but they differ in implementation and target use cases. UltraVNC is primarily focused on Windows systems, while libvncserver offers broader platform support. UltraVNC may be easier for Windows-specific deployments, while libvncserver provides more flexibility for cross-platform development.
Android VNC remote desktop server for local networks
Pros of droidVNC-NG
- Specifically designed for Android devices, offering better mobile compatibility
- More recent development and updates, potentially including newer features
- Lightweight and optimized for mobile performance
Cons of droidVNC-NG
- Limited to Android platform, less versatile than UltraVNC
- Smaller community and potentially less documentation
- May lack some advanced features present in UltraVNC
Code Comparison
UltraVNC (C++):
void ClientConnection::ReadExact(char *inbuf, int wanted)
{
int offset = 0;
while (wanted > 0) {
// ... (connection handling code)
}
}
droidVNC-NG (Java):
private void readFully(InputStream is, byte[] b, int off, int len) throws IOException {
while (len > 0) {
int count = is.read(b, off, len);
// ... (error handling and offset adjustment)
}
}
Both projects implement similar functionality for reading data from a connection, but use different languages and slightly different approaches suited to their respective platforms.
VNC client web application
Pros of noVNC
- Browser-based, no client installation required
- Cross-platform compatibility (works on any device with a modern web browser)
- Easy integration with web applications and cloud environments
Cons of noVNC
- Potentially higher latency due to web-based nature
- May have limited support for advanced features compared to native VNC clients
Code Comparison
noVNC (JavaScript):
var rfb = new RFB(document.getElementById('screen'), 'ws://example.com:5900');
rfb.scaleViewport = true;
rfb.resizeSession = true;
UltraVNC (C++):
VNCViewer viewer;
viewer.Connect("example.com", 5900);
viewer.SetScalingMode(SCALING_ASPECT_FIT);
Key Differences
- Implementation: noVNC is primarily JavaScript-based, while UltraVNC is written in C++
- Deployment: noVNC runs in web browsers, UltraVNC requires a native client installation
- Use cases: noVNC is ideal for web-based remote access scenarios, UltraVNC is better suited for traditional desktop environments
Conclusion
Choose noVNC for web-based, cross-platform remote access with easy integration. Opt for UltraVNC when native performance and advanced features are priorities in desktop environments.
FreeRDP is a free remote desktop protocol library and clients
Pros of FreeRDP
- Cross-platform support (Windows, macOS, Linux, iOS, Android)
- Implements the Remote Desktop Protocol (RDP), which is widely used in Windows environments
- Active development with frequent updates and bug fixes
Cons of FreeRDP
- Primarily focused on RDP, limiting its use for other remote desktop protocols
- May have a steeper learning curve for users unfamiliar with RDP
Code Comparison
FreeRDP (C):
BOOL freerdp_connect(freerdp* instance)
{
rdpContext* context;
BOOL status = TRUE;
// ... (connection logic)
}
UltraVNC (C++):
bool ClientConnection::Connect()
{
vnclog.Print(3, _T("Connecting to %s port %d\n"), m_host, m_port);
// ... (connection logic)
}
Both projects use C-based languages, with FreeRDP primarily using C and UltraVNC using C++. FreeRDP's codebase tends to be more modular and structured, while UltraVNC's code is more focused on the VNC protocol implementation.
FreeRDP is better suited for environments where RDP is the primary protocol, especially in Windows-centric networks. UltraVNC, on the other hand, is ideal for users who specifically need VNC support and prefer a lightweight, VNC-focused solution.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
UltraVNC
Remote Access Tools
UltraVNC is a powerful, easy to use and free - remote pc access softwares - that can display the screen of another computer (via internet or network) on your own screen. The program allows you to use your mouse and keyboard to control the other PC remotely. It means that you can work on a remote computer, as if you were sitting in front of it, right from your current location.
VNC, the Remote Frame Buffer protocol (RFB) allows a desktop to be viewed and controlled remotely over the Internet. A VNC Server must be run on the computer sharing the desktop, a VNC client must be run on the computer that will access the shared desktop.
Supported operating systems
- ð Windows 95**, 98**, Me**, NT4**: latest version: https://uvnc.eu/download/102/
- ð Windows 2000: latest w2k version: https://uvnc.eu/download/1215/Ultravnc_w2k_1215.zip
- ð Windows XP, 2003, Windows Server 2003, Vista, Server 2003 R2, Server 2008: latest version: https://uvnc.com/downloads/ultravnc/129-download-ultravnc-1231.html
- ð Windows 7, 8, 8.1, 10, 11, Server 2008 R2, Server 2012, Server 2012 R2, Server 2016, Server 2019, Server 2022 current version: https://uvnc.com/downloads/ultravnc.html
Its embedded Java Viewer allows you to connect (and make File transfers) from a simple Web Browser on any system supporting Java (Linux, Mac OS, ...) to an UltraVNC Server. PcHelpWare and uvnc2me require XP or later.
UltraVNC Viewer works with all VNC Servers
UltraVNC Server works on Microsoft Windows OS
Compatibility
All VNC flavors follow the RFB protocol. This common start point means that most of the VNC flavours available today "usually" talk nicely together, allowing for easy cross platform desktop sharing to occur. PcHelpWare and uvnc2me are not RFB compatible.
Remote PC Access Software
If you provide computer support, you can quickly access your customer's computers from anywhere in the world and resolve helpdesk issues remotely! With addons like Single Click (SC) your customers don't even have to pre-install software or execute complex procedures to get remote helpdesk support.
Who Should Use UltraVNC
Anyone who needs to support local or remote Windows users will find UltraVNC Products are must-have tools UltraVNC Products have been specifically designed to answer the needs of:
- ð Help Desk (Internal/External)
- ð IT departments
- ð Remote Computer Support companies
- ð Remote Computer Access
- ð Remote demonstration
- ð eLearning, classroom control
- ð Individuals that want to help their relatives and friends, or access their home PC from work or cybercafes
About Us
We are a small team of highly motivated and cool people :-) Our goal is to make the more powerful, user-friendly and no-brainer free Remote Control software available.
UltraVNC is Free and distributed under the terms of the GNU General Public License.
Contact:
- ð« uvnc@skynet.be
- ð¬ For technical questions, use the FORUM first.
Our links
- ð© Website
- ð© Forum
- ð© GitHub
- ð© GitHub Issues
- ð© GitHub Pull requests
- ð© Mastodon
- ð© Facebook
- ð© X/Twitter
- ð© Reddit
- ð© OpenHub
Compile and build in Visual Studio
- ð ï¸ Visual Studio 2017 or 2019 or 2022
- ð ï¸ Netwide Assembler (NASM): https://nasm.us/
- âï¸ vncviewer_VS2017.sln to build UltraVNC Viewer
- âï¸ winvnc_VS2017.sln to build UltraVNC Server
Top Related Projects
High performance, multi-platform VNC client and server
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
Android VNC remote desktop server for local networks
VNC client web application
FreeRDP is a free remote desktop protocol library and clients
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot