Socket网络编程练习-----远程协助工具

本文介绍了使用Java的Socket网络编程实现远程控制的思路和步骤。客户端负责接收服务端发送的屏幕图像并监听键盘鼠标事件,服务端则发送桌面图像、监听事件并使用Robot类模拟鼠标和键盘操作。通过Socket建立连接,利用Robot类处理远程桌面交互。
摘要由CSDN通过智能技术生成

  网络编程是指通过使用套接字来达到进程间相互通信的目的,狭义上的网络编程就是指在两台或两台以上的计算机之间传输数据。我们程序员发送到指定的位置,或者接收到指定的数据。在发送和接收数据时,大部分的计算机语言都设计了专门的API实现这些功能,而我们只需要调用即可。
  在Java中,支持TCP网络编程的包是java.net包,以java.net包下面的Socket类代表客户端连接,ServerSocket类代表服务器连接。
  在这里我们要实现远程控制还需要使用java.awt.robot类。通过网络实现对另一台计算机的远程控制,其实就是控制远程计算机的鼠标和键盘动作,还有一个就是要获取远程计算机屏幕的图像。
  首先先讲一下思路:要实现远程控制一般有三个部分,分别是控制端、被控制端,还有一个服务端。这里为了简单,省略了服务端,将服务端和被控制端合到了一起。以下统称为大家熟悉的客户端和服务端。
  客户端主要实现:
    1、接受服务端发送过来的图片
    2、监听事件,发送键盘事件和鼠标事件
  服务端主要实现:
    1、将电脑桌面发送到客户端
     2、监听事件,发送键盘事件和鼠标事件
     3、使用Robot类进行鼠标和键盘的自动化操作

具体实现

首先,两台计算机需要通过java.net.Socket进行连接。
服务端应该有一个ServerSocket,并且初始化输出流:

public static void main(String[] args) throws Exception {
        //实例化服务端监听 在 1234端口
        ServerSocket sever = new ServerSocket(1234);
        System.out.println("服务器已经启动...");
        Socket socket = sever.accept(); //等待接受请求
        System.out.println("有客户已经连接");
        DataOutputStream dataOut = 
        new DataOutputStream(socket.getOutputStream());
    }
客户端应该有一个Socket去连接服务端,并且初始化输入输出流:
public static void main(String[] args) 
        throws Exception, IOException{
        Socket socket = new Socket("127.0.0.1",1234);
        DataInputStream dataIn = new DataInputStream(socket.getInputStream());
        ObjectOutputStream objectOut = new ObjectOutputStream(socket.getOutputStream());
    }   

  现在两台计算机已经连通了,接下来就需要具体实现数据的交换。由于我们的被控制端和服务端是和在一起的,按照我上面写的

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值