一、需求分析:
随着信息技术的高速发展,互联网、无线网等网络的迅速普及,人们能方便、快捷、高效地远程进行操作解决实际问题,远程控制软件便应运而生。
二、概要设计:
服务器端(受控端) |
控制命令的接收及执行 1.完成控制命令的接收 2.根据对应的格式执行操作
|
图像的捕捉及发送 1.界面图像的捕捉 2.界面图像的发送
|
接收、显示图像 1.完成图像的接收 2.完成图像的显示 |
添听并发送控制 1.添听鼠标、键盘的操作 2.完成命令的打包及发送 |
客户端 (控制端) |
各个功能通过各自的类来完成。
三、详细设计:
1、各个端的信息的接收均由一个线程来完成,增加了软件运行的流畅性。
2、使用JLabel来展示图像
四、程序结构
1、程序结构说明:
本程序采用模块化设计方法,各个功能的实现都有具体的方法,在主函数调用相应的方法即可实现程序的要求。程序的整体性很强。
2、重要数据说明:
本程序中使用字节流协来发送、解析数据。
四个字节 | 一个字节 | 后N个字节 |
一个INT,代表信息长度 | 代表类型 | 信息 |
其中,类型:0代表图片类型数据 (针对客户端)
0代表移动命令 (针对服务器)
1代表鼠标点击命令 2代表鼠标释放命令
3代表键盘点击命令 4代表键盘释放命令
3、函数清单:
服务器端:
/**
* 写一个服务器打开的程序
* @param port:端口
*/
public void startServer (int port)/*
* 显示开始的方法
*/
//重写run方法(服务器中的Receiver)
public void run()
//初始化 信息及(服务器中的UserThread)
public void init()
//发送信息(图片)方法(服务器中的UserThread)
public void sendImg()
//写run方法(服务器中的UserThread),完成命令的接收
public void run()
客户端
//显示主界面的方法
public void showUI()
//初始化(ClientThread中)
public void unit()
//重写run方法(ClientThread中),用来读数据
public void run()
//显示控制界面(ControFrame中)
public void showUI()
//写一个 得到图像,画图的方法
public void drawPicture(Image img)
//得到图像,画图的方法
public void passImg(Image img)
五、调试分析:
1、程序截图:
2、程序调试
发现控制时,移动及画面不畅,需要调整接收、发送图片的频率来解决。
六、总结:
1、程序设计难点:
本程序的难点在于刷新率的设定及画面显示的方法、协议的定制等。
2、程序设计中的不足:
本程序仅初步完成了控制功能,仅可控制1280X768分辨率机器,还未添加其它分辨率机型,需要改进,且主界面没有完善。