Convert Figma logo to code with AI

ultravnc logoUltraVNC

UltraVNC Server, UltraVNC Viewer, UltraVNC Repeater and UltraVNC SC | Official repository: https://github.com/ultravnc/UltraVNC

1,049
223
1,049
81

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

12,356

VNC client web application

11,908

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:

  1. Download the UltraVNC installer from the official website: https://www.uvnc.com/downloads/ultravnc.html
  2. Install UltraVNC on both the server (computer to be controlled) and viewer (computer controlling) machines.
  3. On the server, run the UltraVNC Server and configure settings as needed.
  4. On the viewer, run the UltraVNC Viewer and enter the IP address or hostname of the server.
  5. 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.

12,356

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.

11,908

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

UltraVNC

Remote Access Tools

UltraVNC Viewer

UltraVNC GitHub Followers UltraVNC GitHub Stars UltraVNC GitHub Watchers UltraVNC GitHub Forks UltraVNC GitHub Contributors UltraVNC GitHub Tags UltraVNC GitHub License UltraVNC GitHub Last Commit

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

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.

C C++ Java

UltraVNC Viewer works with all VNC Servers

Microsoft Windows Linux Apple MacOS

UltraVNC Server works on Microsoft Windows OS

Microsoft Windows


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:


Our links


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

Copyright ©️ 2002-2024 UltraVNC Team Members. All Rights Reserved.

UltraVNC GitHub UltraVNC Mastodon UltraVNC Facebook UltraVNC X/Twitter UltraVNC Reddit