Java简单实现C/S鼠标控制—tcp/ip实现
服务器
package JFrameChat;
import java.awt.Robot;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MouseSocket implements Runnable {
public static void main(String[] args) {
MouseSocket mt = new MouseSocket();
Thread th = new Thread(mt);
th.start();
}
@Override
public void run() {
try{
ServerSocket sskt = new ServerSocket(8888);
System.out.println("服务器启动成功!");
while(true) {
System.out.println("等待客户端连接!");
Socket skt = sskt.accept(); //套接字
System.out.println("客户端连接成功!");
String str = skt.getInetAddress().toString();
System.out.println(str);
DataInputStream din = new DataInputStream(skt.getInputStream());
String message = din.readUTF();
System.out.println("say"+message);
String[] array = message.split("-");
int x=Integer.parseInt(array[0]);
int y=Integer.parseInt(array[1]);
Robot rbt = new Robot();
rbt.mouseMove(x, y);
}
}catch(Exception e) {
}
}
}
客户端
package JFrameChat;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.DataOutputStream;
import java.net.Socket;
import javax.swing.JFrame;
import JFrameChat.mouseTest.MymouseListener;
public class MouseDemo2 extends JFrame {
public MouseDemo2() {
setBounds(300,100,700,500);
addMouseMotionListener(new MymouseListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
class MymouseListener extends MouseAdapter{
@Override
public void mouseMoved(MouseEvent e) {
int x = e.getX();
int y = e.getY();
try{
Socket skt = new Socket("192.168.43.149",8888);
DataOutputStream dout = new DataOutputStream(skt.getOutputStream());
String str = x+"-"+y;
dout.writeUTF(str);
System.out.println(str);
}catch(Exception e1) {
}
}
}
public static void main(String[] args) {
MouseDemo2 mt = new MouseDemo2();
}
}
因是MacBook,与Windows建立连接时出现延迟过高,因此又选择了udp,见下一节