Real-Time Multi-PC Input Synchronization Software
Orçamento: $100.0
FIXED /
⭐ 4.60 (2)
Bulgaria
c++, desktop-applications, python, standalone-application, c, c#
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.
Abrir na Upwork