Real-Time Multi-PC Input Synchronization Software

Posted 2 days ago

Worldwide

Summary

Overview I need a Windows application that allows one computer (Master) to control one or more Windows computers (Clients) in real time. The goal is synchronized input. Every mouse movement, mouse click and keyboard press performed on the Master computer should be reproduced on all connected Client computers with extremely low latency. The software should work over a local network (LAN), with an architecture that can later be extended for internet use. Required Features Master Application * Capture all mouse movement. * Capture left, right and middle mouse clicks. * Capture mouse wheel scrolling. * Capture keyboard presses and releases. * Broadcast all events in real time to connected clients. * Show connected devices. * Allow enabling/disabling individual clients. * Low CPU usage. * Low latency. ⸻ Client Application * Receive input events from the Master. * Reproduce: * Mouse movement * Mouse clicks * Mouse wheel * Keyboard input * Maintain synchronization with minimal delay. * Automatically reconnect if the connection is lost. ⸻ Synchronization Target latency: * under 10 ms on LAN * no noticeable desynchronization All clients should execute the received input simultaneously. ⸻ Networking Preferred: * TCP for reliability where appropriate * UDP for real-time input if beneficial Support: * Static IP * Automatic device discovery (optional) ⸻ Screen Resolution Support: * Different monitor resolutions * Different DPI scaling The software should correctly translate mouse coordinates if resolutions differ. ⸻ User Interface Simple interface containing: Master * Start server * Connected clients * Client status * Disconnect client Client * Connect to server * Connection status * Auto reconnect ⸻ Performance Requirements * Stable for long sessions * Minimal memory usage * Minimal CPU usage * Multi-threaded implementation ⸻ Future Expansion The architecture should be modular so future versions can include: * File transfer * Clipboard synchronization * Multiple monitor support * Encrypted communication * Internet connectivity * Logging * Remote configuration ⸻ Preferred Technology Examples (developer may suggest alternatives): Backend * C++ * C# * Rust Networking * WinSock * .NET Sockets * Boost.Asio UI * WinUI * WPF * Qt ⸻ Deliverables * Complete source code * Documentation * Build instructions * Windows executable * Installation guide ⸻ Experience Required I’m looking for developers with experience in: * Windows desktop application development * Low-level Windows input handling (keyboard and mouse events) * Network programming (TCP/UDP sockets) * Real-time systems and low-latency communication * Multithreading and performance optimization * C++, C#, Rust or similar languag Additional Networking and Device Compatibility Requirements The synchronization software must continue operating when each Windows computer uses its own VPN connection. Required behaviour * Every computer may use a different VPN provider, VPN server, and public IP address. * The software must not depend on the device’s public IP address, MAC address, Windows hardware ID, disk serial number, motherboard serial number, or other hardware fingerprint for authentication. * Each installation must generate its own application-level device ID and cryptographic key pair. * Devices must authenticate using certificates or secure tokens generated by the synchronization software. * Changing networks, reconnecting a VPN, changing a local IP address, or switching between Wi-Fi and Ethernet must not break the device pairing. * The client must automatically reconnect after a VPN reconnect or network interruption. * The program should support both: 1. Direct LAN communication when devices are on the same local network. 2. Secure communication through an overlay network or relay server when VPN routing prevents direct LAN access. Recommended networking options The developer may implement one of the following: * Tailscale or WireGuard-based private network * ZeroTier private network * A custom encrypted relay server * Secure WebSocket or QUIC connection * Mutual TLS authentication Important routing requirement Some commercial VPN applications block access to other devices on the local network. The software must detect this condition and either: * use the private overlay network; * use a secure relay server; * or show a clear warning that local-network access must be enabled in the VPN application. The developer must not rely on MAC addresses or hardware fingerprints to locate or authenticate devices. Security * End-to-end encrypted communication * Unique application-generated identity for every installation * Ability to revoke a paired device * No default open ports accessible from the public internet * Signed application builds * Secure storage of authentication keys * Optional IP allowlist and pairing confirmation code Testing requirements The finished application must be tested under these conditions: * Both computers on the same LAN without VPN * Master using VPN and client without VPN * Both computers using different VPN servers * VPN disconnecting and reconnecting during operation * Local IP address changing * Wi-Fi switching to Ethernet * Direct connection unavailable and relay fallback activated The developer must document which VPN settings are required, including whether “Allow LAN access” or split tunnelling must be enabled.

  • $100.00

    Fixed-price
  • Intermediate
    Experience Level
  • Remote Job
  • Complex project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
C++
Desktop Application
Activity on this job
  • Proposals:10 to 15
  • Last viewed by client:2 days ago
  • Interviewing:
    3
  • Invites sent:
    7
  • Unanswered invites:
    1
About the client
Member since Apr 18, 2022
  • Bulgaria
    Sofia7:14 PM
  • $970 total spent
    4 hires, 0 active

Explore similar jobs on Upwork

Crestron Programming
Extron Programming
IDE
Microsoft Word for Mac Expert NeededHourly‐ Posted 4 weeks ago
Microsoft Word
Office 365
Microsoft Office
Word Processing

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo