With the Remote PC Controller, you can easily control someone's PC from your own if both of them are connected via LAN and the other user gives you permission to do so. The project is the result of an educational effort to make a replica of the popular software TeamViewer.

Screenshot

Remote PC Controller Home Screen

Download application

How to use

  • Download the latest release from github.com/AnindyaPaul/remote-pc-controller/releases.
  • Run the jar file in both PC. You need JRE to run the application.
  • Enter IP of the PC you want to control.
  • Enter the password that is being shown in that PC.
  • Click connect and wait for the other user to accept.
  • Control using the control window.

Typical home users can test this program by having two computers connected to the same router.

How it works

There are two major parts of the application. One is that it can be the controller of another PC and the other one is that it can be the controlled PC. So it either sends control request to another PC or wait for incoming request to accept and give control to someone else.

When one user sends a request to another user, as the request gets accepted, a TCP connection is created between the two. Then two threads are created. The controller uses the two threads to receive screen and send control signals. The one being controlled uses the two threads to send screen and receive control signals.

The controller gets screenshots from the host PC. Controller has mouse and keyboard listeners implemented. So it listens to events happening on the screenshot sent by the host. As any event occurs, the controller sends that event over the TCP connection to the host PC. The control receiver at the host end has a robot (java.awt.Robot) which then emulates the received events. In the mean time, another robot is continuously taking screenshots of the host and sending them over to the controller.