Java实现远程控制技术
java自带的java.net.和java.awt.robot. 的混合可以用于实现通过网络对另一台计算机的远程控制,其中包括控制远程计算机鼠标的动作和键盘的输入,以及实时获得远程计算机屏幕的图像。本文将用简洁的语言和由浅入深的逻辑,教大家如何掌握这个技术。
首先先看一下效果图:
远程端计算机界面:
控制端计算机界面:
控制端输入:
远程端输入:
一下开始详细介绍远程控制的技术思路。
首先两台计算机通过java.net的Socket来进行连接。
一端先打开一个ServerSocket,然后另外一端用socket进行连接。
服务器端
应该设置一个ServerSocket,并且初始化需要用到的输入输出流:
public static void OpenServer() throws IOException, ClassNotFoundException{
System.out.println("ServerStart.....");
ServerSocket server = new ServerSocket(7777);
socket = server.accept();
System.out.println("连接上...\n"+socket);
OIS = new ObjectInputStream(socket.getInputStream());
OOS=new ObjectOutputStream(socket.getOutputStream());
}
客户机端
应该用socket去连接服务器,并且初始化输入输出流:
public static void StartConnection(String IP,int port) throws UnknownHostException, IOException, AWTException{
socket = new Socket("192.168.0.106",7777);
if(socket.isConnected()){
System.out.println("socket connected..."+socket);
}
OOS = new ObjectOutputStream(socket.getOutputStream());
OIS = new ObjectInputStream(socket.getInputStream());
}
这样两台计算机就链接在一起并且可以通过流(InputStream和OutputStream)来交换数据了
接下来大家可以想一想,要实现远程控制的两台计算机需要交换什么信息呢?首先被控制端需要不断向控制端提供截取的屏幕图像(这个我们将会用java.awt.robot来实现),然后鼠标和键盘根据控制端传来的事件(inputEvent)来做出相同的操作(用robot来实现)。然后控制端当然首