java毕业设计——基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)——远程监控系统

news2024/11/25 5:02:18

基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+Socket+sqlserver的远程监控系统软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

文章目录:

  • 基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)
    • 1、项目简介
    • 2、资源详情
    • 3、关键词
    • 4、毕设简介
    • 5、资源下载

1、项目简介

  1. 近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,其实用性也毋庸质疑。基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;实现在远程机器上执行任意DOS命令;远程关机、远程重启计算机,方便了用户监视和操作被监控端机器。本系统从系统需求分析、概要设计、详细设计到具体的编码实现和后期的代码优化、功能测试都严格遵循了软件工程的思想。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:10373个字25页
包含内容:整套源码+完整毕业论文


3、关键词

远程监控;Java Robot;屏幕截取;Java Socket

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

引 言
近年来,随着计算机及网络的应用普及,千千万万的人们在娱乐、通讯、学习、工作等各方面都实现了前所未有的信息化,极大地提高了生活质量与工作效率。然而在这种种便利背后,你关注的人在做什么呢?比如:公司员工。因此,远程监控发挥作用了。这里以公司领导为例,远程监控系统软件方便了公司领导人管理公司员工。在一个企业中,作为公司领导人,一定很担心自己的员工利用上班时间做工作以外的其他事情,也很担心他们泄露公司机密,等等。有了远程监控,这样的担心就很容易解决,你不用亲临监督每个员工,在自己电脑面前就能对他们的一举一动了如指掌。

远程监控技术,始于DOS时代,因为当时网络不发达,这门技术没有得到很多重视,但是随着网络的高度发展,电脑的管理及技术支持的需要,远程监控技术越来越引起人们的关注。

网络技术的不断发展,也为远程监控技术的发展创造了条件。远程监控软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server,多数远程监控软件把被监控端作为服务器,主控端作为客户端。考虑到在监控过程中,如果把主控端作为客户端向被监控端发送TCP连接请求,容易被防火墙或者杀毒软件阻止,监控过程就不能够成功进行。因此,本毕业设计将被监控端设计为客户端,向主控端发连接请求,建立连接后,主控端向被监控端发送远程控制命令,控制被监控端电脑中的各种应用程序运行,被监控端对主控端发送来的命令进行处理,并将命令处理结果返回给主控端。

远程监控软件顺应时代发展的需求,它实用、使用简便,是非常不错的软件。

1.1 远程监控的背景知识
远程监控是在网络上由一台电脑(主控端Remote)远距离去监控另一台电脑(被监控端Host)的技术,这里的远程不是字面意思的远距离,一般指通过网络监控远端电脑,不过,大多数时候我们所说的远程监控往往指在局域网中的远程监控而言。

当操作者使用主控端电脑监控被监控端电脑时,就如同坐在被监控端电脑的屏幕前一样,可以启动被监控端电脑的应用程序,可以使用被监控端电脑的文件资料,不过,有一个概念需要明确,那就是主控端电脑只是将键盘和鼠标的指令传送给远程电脑,同时将被监控端电脑的屏幕画面通过通信线路回传过来。也就是说,我们控制被监控端电脑进行操作似乎是在眼前的电脑上进行的,实质是在远程的电脑中实现的,不论打开文件,还是上网浏览、下载等都是存储在远程的被监控端电脑中的。

电脑中的远程控制技术,始于DOS时代,只不过当时由于技术上没有什么大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远程操作及控制技术越来越引起人们的关注。

远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进行控制(不过,这里说的远程电脑,只能是有限距离范围内的电脑了)。传统的远程控制软件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等协议来实现远程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过Web页面以Java技术来控制远程电脑,这样可以实现不同操作系统下的远程控制,例如数技通科技有限公司在就推出了全球第一套基于中文JAVA的跨平台远程控制软件――易控。

1 2 远程监控软件的原理
远程监控软件一般分两个部分:一部分是客户端程序Client,另一部分是服务器端程序Server,由于本毕业设计的通信模块有别于传统的远程监控软件,在使用前需要将客户端程序安装到被监控端电脑上,将服务器端程序安装到主控端电脑上。

它的控制的过程是先在被监控端电脑上执行客户端程序,像一个普通的客户一样向主控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,接收主控端发送过来的远程控制命令,并对命令进行处理,最后将命令处理结果返回给主控端,我们称这种远程控制方式为基于远程服务的远程控制。通过远程监控软件,我们可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表;记录并提取远端键盘事件(击键序列,即监视远端键盘输入的内容);可以打开、关闭目标电脑的任意目录并实现资源共享;提取拨号网络及普通程序的密码;激活、中止远端程序进程;管理远端电脑的文件和文件夹;关闭或者重新启动远端电脑中的操作系统;修改Windows注册表;通过远端电脑上、下载文件和捕获音频、视频信号等。

前面我们所说的是一台电脑对一台电脑的情况,其实,基于远程服务的远程控制最适合的模式是一对多,即利用远程监控软件,我们可以使用一台电脑监控多台电脑,这就使得我们不必为办公室的每一台电脑都安装一个调制解调器,而只需要利用办公室局域网的优势就可以轻松实现远程多点控制了。

在进行一台电脑对多台远端电脑进行控制时,我们发现,远程监控软件似乎更像一个局域网的网络管理员,而提供远程控制的远程终端服务就像极了办公室局域网的延伸。这种一对多的连接方式在节省了调制解调器的同时,还使得网络的接入更加安全可靠,网络管理员也更易于管理局域网上的每一台电脑。

本文所论述的远程监控系统就是依照这种方式进行的。

2 系统需求分析及理论基础
2.1 系统需求分析
2.1.1 系统功能需求
1.连续获得被控端机器屏幕变化。
2.实现被控端硬盘文件的上传、下载。
3.实现对鼠标、键盘的模拟。
4.实现在被控端机器上执行任意DOS命令。
5.远程关机、远程重启计算机。

2.1.2 其他需求
1.系统实用,界面操作简便。
2.被监控端自动隐藏运行。
被监控端将随电脑启动而自动运行,运行时默认无任何可见界面。

2.2 系统开发原理及关键技术
2.2.1 系统开发原理
本系统是利用类java.awt.robot中的屏幕截取和鼠标、键盘自动控制功能,然后加上网络传输功能来完成来完成截屏和远程控制的。

2.2.2 系统运行概述
1.启动被监控端,打开指定的UDP端口号。用于读取命令。
2.被监控端读取命令(命令格式为ordername:port)ordername为命令名字,port为主控端打开的TCP端口。
3.接到主控端连接后,被监控端就对当前用户的桌面采用屏幕截取,然后发送给主控端。依被监控端设计的不同,可以设定屏幕截取的时间间隔,时间间隔短一点就可以获得连续屏幕变化了。
4.主控端在画布上对鼠标、键盘事件进行监听,被监控端重演主控端上的事件
5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。
6.在被监控端实现DOS命令的执行。

2.2.3 系统的关键技术
系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端的通讯(命令收发、数据传送),用Java图形编程完成主控端控制界面的编写。具体应用如下:
1.实现主控端(服务器)与被监控端(客户端)之间的通讯。
——用Java Socket来实现。
2.用Java采集事件,封装成消息,用于发送。
——在主控端机器上采集事件(一般只不过是键盘和鼠标的事件),然后封装成消息类传输到被监控端。
3.在被监控端上重演主控端的动作事件。
——在被监控端运行client端,接收消息,如果主控端有请求操作的消息,用Robot截下当前屏幕,传给主控端,主控端显示被监控端的屏幕,是一个位图;然后接收在这个位图上的鼠标事件和键盘事件,并把鼠标位置(位图上的坐标换算成对应的屏幕上的坐标)和键值送到被监控端上,在被监控端上重演同样的事件。

2.3 系统的开发平台
JDK1.5.0,Eclipse3.1,Windows

2.3.1 Eclipse介绍
Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境 (IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。

2.3.2 Java语言
Java语言是SUN公司于1995年5月推出的新一代面向对象的计算机通用编程语言,是继WWW之后又一引起世界轰动的产品。Java语言的特点是跨平台和强大的网络编程功能。在Java语言诞生之前,Internet已存在,所以Java语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又简化了网络编程的操作。因此利用Java语言可以开发出功能强大的网络应用程序。

2.3.3 Jar命令
省略

3 远程监控系统系统设计
3.1 系统总体结构设计和分析
本系统设计的方案为C/S模式,在主控端电脑上安装服务器端程序,在被监控端电脑上安装客户端程序。该系统的控制过程是先在主控端电脑上执行服务器程序,在命令收发过程中,主控端向被监控端配置的UDP端口发送命令,该命令是一个控制命令,要求被监控端来连接其开启的TCP端口和要求被监控端执行的操作,如果被监控端监听到该UDP命令,主动开启TCP端口向主控端发送连接请求。这样就建立了一个特殊的远程服务,然后通过这个远程服务,主控端使用各种远程控制功能发送远程控制命令,控制被监控端电脑中的各种应用程序运行。系统总体结构如图1:
在这里插入图片描述

图1 系统总体结构图
图3.1把软件功能分解到通信的两个端点上,即客户端和服务器端,采用Client/Server模式。这样能提高设计的灵活性,易于系统的扩展。被监控端接受主控端命令,并处理命令,然后输出命令处理结果;主控端则提供交互界面及命令处理结果显示;数据交换通道的建立由双方的数据通信模块负责。从而实现点到点的直接控制监控,满足实时性要求。

3.1.1 主控端的主要功能模块
主控端包括的模块有:消息输入,命令处理结果显示模块,通信模块。消息输入模块负责将用户界面的事件传送到通信模块,通信模块将命令信息发送到被监控端;被监控端执行操作后返回的成功或失败信息交由主控端命令处理结果显示模块根据信息的格式进行显示。

3.1.2 被监控端的主要功能模块
被监控端包括的模块有:通信模块,命令处理模块。被监控端处于侦听状态,一旦接收到合法的连接请求,就开UDP端口,并开启命令接受线程,建立连接后,通过通信模块接收主控端发来的命令信息,经命令处理模块解释后,并将结果返回到主控端。

3.2 程序流程及分析
3.2.1 被监控端启动流程
在被监控端安装客户端程序,程序启动的时候,尝试开启UDP端口,如果防火墙或者杀毒软件阻止,尝试开启配置的其它UDP端口,如果都尝试完毕,启动失败。否则,将开启的UDP套接字传入,然后开启命令接收线程,目的是进行命令获取,并对获取的命令进行处理。然后将自己复制到自启动项,并改名为Explorer.jar. 流程如图2。
在这里插入图片描述

图2 被监控端启动流程

3.2.2 主控端启动流程
在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形显示,然后用户输入被监控端的IP地址。接着主控端开启任意TCP端口,并向该IP配置的UDP端口发送初始化命令(命令格式为ordername:port),ordername为命令名字,port为主控端打开的TCP端口号。主控端对开启的TCP端口进行监听,如果超时,连接失败。否则,主控端读取被监控端的状态对象,接着启动控制模块和屏幕监视模块。流程如图3。
在这里插入图片描述

图4 命令接受和处理流程

3.2.3 命令接收和处理流程
被监控端UDP端口启动成功后,就开始对该UDP端口进行监听,如果监听到有命令,就读取它,并判断命令是否有效,命令以ordername:port为格式,如果无效,返回继续读取命令,否则,调用相应的命令处理模块对命令进行处理,命令处理完后将处理结果返回给主控端。流程如图4。

3.2.4 图形监视线程启动流程
主控端开启任意TCP端口,向被监控端的UDP端口发送“要求被监控端连接”的UDP命令,命令形式为screen:TCP Port。如果命令超时,命令执行失败,否则,如果被监视端来连接,生成Soket对象,从Soket中读取被监视端发送过来的图形对象,并将图象显示在画布上,每隔一定时间(若干秒),重新读取图象,更
新画布显示,从而实现连续获得对方屏幕变化。流程如图5。
在这里插入图片描述

图5 图形监视线程启动流程

3.2.5 远程控制流程
被监控端收到主控端的UDP命令:control:TCP Port,获得主控端开放的TCP端口号。成功连接主控端的TCP端口后,并从中读取事件对象,接着对事件对象进行类型判断,如果是键盘事件,就对键盘事件重演;如果是鼠标事件,就对鼠标事件重演。接着判定控制套接是否关闭,如果关闭,控制结束。否则返回继续读取事件。流程如图6。
在这里插入图片描述

图6 远程控制流程

3.2.6 文件上传流程
主控端开启任意TCP端口,向被监控端发送文件上传命令,命令格式为:fileup:TCP Port。如果命令超时,文件上传失败,否则,主控端读取文件数据并发送,发送过程中如果I/O错误,文件上传失败,否则,进行文件是否读取完判断,如果读取完,则上传成功,否则,继续读取文件数据。流程如图7。
在这里插入图片描述

图7 文件上传流程
4 系统主要模块设计和具体功能实现
4.1 系统主要模块设计
4.1.1 消息输入,命令处理结果显示模块
主控端消息输入,显示模块的开发采用JAVA图形编程,利用模块化、通用性强的特点,实现远程监控中用户控制界面的编写。

4.1.2 通信模块实现
1.Socket编程
数据通信模块中的数据通道建立采用Socket编程。Socket支持TCP/IP协议网络通信的基本操作;它屏蔽了网络底层的通信细节,使编程简单;它对通信端点进行了抽象,提供发送和接收数据机制及打开、计算和关闭会话的能力。本项目中,客户端和服务器代表运行在Windows操作平台下,采用Java Socket来编程实现命令和数据信息的传输。
2.通信建立
服务器与客户端开始都必须调用socket()函数产生一个Socket套接字。由于让被监控端开TCP端口,很容易被防火墙和杀毒软件阻止,监控就难以完成。这里,我们在主控端开TCP端口,等待被监控端来主动连接,这样监控功能就能更顺利的开始。主控端首先创建一个ServerSocket对象,然后调用ServerSocket的方法accept实现监听。如果被监控端来访问,accept会返回一个socket对象,利用这个对象就可以很轻松的完成服务器和客户端的数据交换。只有被监控端有请求时才建立连接,建立连接后,客户端与服务器之间便可以双向传输数据。当得到socket对象后,主控端建立ObjectInputStream对象,被监控端建立ObjectOutputStream对象实现消息的接收和发送。完成通信后,调用ServerSocket和socket对象的close关闭套接字,结束通信。
主控端主要通信代码:

ServerSocket server=NewRadomSocket.openNewPort(); //开启新端口
Socket socket=null;
server.setSoTimeout(Parameter.TCP_TIME_OUT); //设置超时
socket=server.accept(); //开启
ObjectInputStream readin=new ObjectInputStream(socket.getInputStream()); //封装流,准备读取一个对象
socket.close(); //关闭socket,结束通信

被监控端主要通信代码:

Socket socket=new Socket(serverip, serverport);
ObjectOutputStream send=new ObjectOutputStream(socket.getOutputStream());//封装流
send.writeObject(cc); //发送
send.close(); //关闭流
socket.close(); //关闭套接

4.1.3 命令处理模块
命令处理模块的实现就是通过函数调用,调用各个命令处理类。在命令处理模块中,被监控端执行以下操作:发送自己的状态信息给主控端;建立图象传送;开启控制命令套接字;文件上传;文件下载;执行DOS命令,获取执行结果和错误流。

4.2 连续获得被监控端机器屏幕变化功能实现
4.2.1 比较几种屏幕截取方法
在Java远程监控过程中,我们要截取软件运行GUI界面,并将其保存到一个或一系列图像文件中。
目前,在Windows平台下,有关屏幕截取的工具软件有许多,比如:HyperCam等,当然还可以直接利用Windows操作系统支持的屏幕拷贝Print Screen键,将屏幕拷贝到剪贴板,在保存为图像文件。这些工具软件一定要屏幕截取者,在操作过程中要"精力集中"并且"伺机捕获"所需要的软件运行界面。事实上,有时候我们需要Java应用程序,自动对运行的GUI界面进行"拍照",比如:一台计算机要获取网络上另一台计算机正在运行的GUI界面,要看看对方计算机上软件运行情况。这就需要在Java应用程序中,自动将运行的GUI界面保存到一个图像文件中,然后通过网络传输到另一台计算机上。而上述HyperCam等工具软件无法与我们的Java应用融合为一体。因此,我们需要在Java应用程序中编写一个屏幕"照相机"。

4.2.2 Java“屏幕照相机”的编写原理
"屏幕的截取"是比较接近操作系统底层的操作,在Windows平台下,该操作似乎成了VC、VB等语言开发的专利。事实上,"屏幕的截取"在Java应用程序中,及其简单。在Java JDK1.5.0 中提供了一个"机器人"Robot类。该类用于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程序运行。Robot类提供了一个方法:.createScreenCapture(…),可以直接将全屏幕或某个屏幕区域的像素拷贝到一个BufferedImage对象中,我们只需要将该对象写入到一个图像文件之中,就完成了屏幕到图像的拷贝过程。

4.2.3 Java“屏幕照相机”的实现
为了构造一个比较完善的Java屏幕"照相机",我们构造了一个ImageProvider JavaBean,其源代码和说明如下:

/* 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" */
public class ImageProvider {
private Robot robot=null; //图象采集类
private Rectangle rect=null; //要复制的 屏幕区域
/* 构造函数,输入要采集的屏幕的 矩形信息*/
public ImageProvider() throws AWTException{
rect=new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); //要复制的屏幕区域,这里为全屏
robot=new Robot(); //创建Robot对象
}
/* 复制全屏幕,返回BufferedImage对象 */
public BufferedImage CopyScreen(){
BufferedImage image=robot.createScreenCapture(rect); //截取屏幕,生成BufferedImage对象
return image;
}
}

4.2.4 远程屏幕监控的实现
实现屏幕监控要完成被监控端发送屏幕截图和主控端接收图片的工作,该功能的实现中构造了两个类:SendImage Thread和GetImageThread,类图分别为图8和图9。
图8 SendImage Thread类图
SendImage Thread JavaBean 代码和说明如下:

/*被监控端将Java屏幕"照相机"采集到的图片压缩为JPEG文件,发送到主控端*/
public class SendImageThread extends Thread{
。。。。。。。。。。。。。。。。(部分代码略去)
	public void run(){
	    int i=0;
	    OutputStream out=null;
	    JPEGImageEncoder encoder=null; //压缩为JPEG
		try {out = client.getOutputStream(); //获得TCP套接字流
		    encoder=JPEGCodec.createJPEGEncoder(out);//将流压缩为JPEG对象流
		} catch (IOException e1) {
		      e1.printStackTrace();
		}
     while(true){
		 image=impv.CopyScreen(); //截取屏幕图象
		 encoder.encode(image) ; //向网络写入JPEG图形对象
	}
}

GetImage Thread JavaBean 代码和说明如下:

/*主控端接收JPEG文件,并在画布上显示*/
public class GetImageThread extends Thread{
。。。。。。。。。。(部分代码略去)
public void run(){
	     BufferedImage image=null;
JPEGImageDecoder de=null;
InputStream in=null;

try {
socket.setReceiveBufferSize(1024); //设置接收缓冲
              socket.setSoTimeout(60000); //设置TCP过期时间
              in=socket.getInputStream(); //获取套接字输入流
de=JPEGCodec.createJPEGDecoder(in); //将输入流封装为JPEG对象流
} catch (IOException e) {
			   // TODO Auto-generated catch block
		        e.printStackTrace();
}
          
int wrongtime=0;
          while(true){
    	          wrongtime++;
        	     if(wrongtime>=200)break;
image=de.decodeAsBufferedImage(); //对JPEG对象解码,还原为BufferedImage图形对象
              MainFrame.getInstance().ShowImage(image); //在控制窗口的画布上显示图象
} 
}

4.2.5 屏幕监视功能测试
在系统实现过程中,成功完成了连续获得被监控端机器屏幕变化的功能,下面为测试图片:
在这里插入图片描述

图10 屏幕监视图片

本节详细介绍了远程屏幕监视的功能实现。对于功能需求中的其他功能,这里就不逐一介绍了。对于远程控制功能,如果要实现该功能,首先需要主控端向被监控端发送远程控制命令,被监控端收到命令后,首先返回给主控端一个包含被监控端屏幕分辨率等的状态信息,主控端根据状态信息更新本机所存的被控端状态,并调整画布大小,使其比例符合被监控端屏幕分辨率,这样才可以精确定位。在画布中对事件进行监听,采集事件,封装成消息发送给被监控端,然后在被监控端使用Robot对象控制鼠标对象的位置与动作,实现事件重演。这样就能实现远程控制。

5 系统运行及测试结果
省略

结 论
经过几个月的设计和开发,远程监控系统基本开发完毕。实现了功能需求拟订的功能,各功能能够正常运行:能连续获得被监控端机器的屏幕变化;能对对方机器实现文件上传、下载;能远程控制对方机器;能重启,关闭对方计算机。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如界面设计不太美观,还有就是TCP方式太消耗资源,这是需要改进的地方。

远程监控软件的编写采用成熟的套接字编程,实现了软件面向设备、面向功能量身定制。在开发本系统的过程中,我同时学习了java套接字编程,java I/O流的特点和使用方法以及序列化机制,学习了基本的java图形编程,并查看了许多资料。通过该系统的研制,使得作者对计算机有了一种新的体验:追求实用才是学好计算机的关键。任何一门技术都要以能够解决实际工作中出现的问题为依据和评判优劣的基本依据。同时让我对软件工程有了进一步的理解,在最开始的开发过程中,我急于完成编码,设计不足,在编码过程中程序逻辑搅成一团,剪不断,理还乱。后来干脆推翻,从头开始。我得出结论,在没想好之前,千万不要动手写代码。

在系统的研制过程中,我也遇到许多困难,因为以前没有项目经验,起步很难,不过通过各种知识的补充学习,并且查找各种资料,让我慢慢进入状态,并且从中找到很多乐趣。

参考文献
[1] Herbert Schidt.Java 2[M].北京:清华大学出版社,2004。
[2] 耿祥义,张跃平.JAVA 2(第二版)[M].北京:清华大学出版社,2004。
[3] Bruce Eckel.JAVA编程思想[M].机械工业出版社,2005。
[4] 张海藩.软件工程导论[M].北京:清华大学出版社,2004。
[5] Roger S. Pressmen.软件工程实践者的研究方法[M].机械工业出版社,2004。
[6] 潘卉青,田书林,刘科.网络故障测试仪远程监控软件的设计[EB].
http://www.e-works.net.cn/Articles/448/Article42999.htm,2007-2-7。
[7] 李鲁群.用Java Robot对象实现服务器屏幕远程监视[EB].
http://gceclub.sun.com.cn/yuanchuang/week-6/robot.html

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于java+Socket+sqlserver的远程监控系统软件设计与实现(源码+文档)_java_Socket_CS架构_远程监控系统软件.zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全智能分析技术 思路方案

思路方案 在安全领域的研究中我们发现,很多数据预处理的步骤,在不同的场景下中都可以相互 借鉴,甚至可以进行直接复用。例如,对于加密流量相关的数据,当算法工程师 获取到一批加密流量的 pcap 包之后,不论他…

【Linux学习】之将输出重定向到文件或程序

将输出重定向到文件或程序 文章目录将输出重定向到文件或程序1. 标准输入、标准输出和标准错误2. 输出重定向操作符2.1 用法及说明2.2 合并重定向运算符2.3 输出重定向示例2.4 输出重定向实例23. 构建管道3.1 含义3.2 管道示例1. 标准输入、标准输出和标准错误 进程使用称为文…

Ac-IYGEF-NH2,168781-78-0

Ac-IYGEF-amide, excellent small peptide substrate for the protein tyrosine kinase pp60c-src (Km 368 M and Vmax 1.02 mol min⁻ mg⁻). Ac-IYGEF-amide,蛋白酪氨酸激酶pp60c-src的优秀小肽底物(Km 368 μ M, Vmax 1.02 μ mol minmg)。 编号: 150669中文名称…

新冠“阳”后嗓子疼到只能喝粥?千万别错过这几条加速康复建议

你一定很熟悉这张传遍朋友圈的小照片。你周围的亲戚、朋友、同事,甚至你自己,可能已经变成了前几批“小阳人”,正在体验传说中的高热、肌痛、头痛、喉咙痛、持续咳嗽、食物不振、味觉和嗅觉丧失。此时此刻,每个人都想增加身体的战…

学习python技术难吗?

现如今Python这门语言的就业前景会非常好。相对于其他来说,它语法简单易读,消除了初学者对于“编程”这一行为的恐惧,让越来越多的非科班有信心开始通过编写简单的程序,究竟学习python技术难吗?关键在于你多注意小编这…

oracle学习篇(三)

oracle学习篇(三) 1 oracle伪列 1.1 查询rowid 1.1.1 示例代码 -- rowid 行id 添加时就生成了(删除某一列时,id会更随着一起删除,id在添加的时候就固定死了) SELECT rowid,e.* FROM emp e1.1.2 运行截图 1.2 查询rownum 1.2.1 示例代码 -- rownum 行号 查询时根据行数产生…

Jmeter(十六):jmeter场景的运行架构(本地运行和远程运行)配置远程负载机

jmeter场景的运行架构(本地运行和远程运行) 运行方式: GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试; 命令行运行…

LeetCode刷题复盘笔记—一文搞懂动态规划之188. 买卖股票的最佳时机 IV问题(动态规划系列第二十三篇)

今日主要总结一下动态规划的一道题目,188. 买卖股票的最佳时机 IV 题目:188. 买卖股票的最佳时机 IV Leetcode题目地址 题目描述: 给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计…

带有匹配滤波器的雷达信号调制和脉冲压缩Matlab仿真

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 匹配滤波器: 匹配滤波器是输出端的信号瞬时功率与噪声平均功率的比值最大的线性滤波器也就是说有最大的信噪比。其滤波器的传递函数形式是信号频谱的共轭。在通信系统中,滤波器是其中重…

Selenium3自动化测试【40】Html测试报告

📌 博客主页: 程序员二黑 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习! 目录…

Aspartic acid-PEG-BSA 天冬氨酸-聚乙二醇-牛血清白蛋白

产品名称:天冬氨酸-聚乙二醇-牛血清白蛋白 英文名称:Aspartic acid-PEG-BSA 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体,取决于分子量 PEG分子量可选:350、550、750、1k…

Android Kotlin使用APT手写ButterKnife

前言 ButterKnife通过使用BindView注解就可以完成findViewById工作,它的实现原理其实也很简单,通过APT(Annotation Processing Too,注解解析器)技术,在编译期为我们生成了一个绑定类,而从完成了View的绑定…

OpenAI掌门人Sam Altman:AI的下一个发展阶段

来源|Greylock OneFlow社区编译 翻译|胡燕君、贾川 预告了一整年的GPT-4迟迟没来,人们猜想OpenAI是不是要跳票了,更何况他们之前的得意之作DALL-E也被开源Stable Diffusion打了个措手不及,再不来点深水炸弹业界地位危矣…

jsp+ssm计算机毕业设计ssm学生成绩考核管理系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

对 CSS 工程化的理解

CSS 工程化是为了解决以下问题: 宏观设计:CSS 代码如何组织、如何拆分、模块结构怎样设计?编码优化:怎样写出更好的 CSS?构建:如何处理我的 CSS,才能让它的打包结果最优?可维护性&a…

SQL基础——查询基础

查询基础前言整体思维导图列的查询语法2.1 基本的SELECT语句代码示例:从Product表中输出3列执行结果查询出所有的列语法2.2 查询全部的列代码示例2.2 输出Product表中全部的列执行结果为列设置别名代码示例2.3 为列设置别名执行结果代码示例2.4 设置中文别名执行结果…

Redis持久化没玩明白,你就会把缓存数据丢了

引言 我们都知道Redis是微服务架构中重要的基础数据库中间件,通过Redis可以将数据库中的数据缓存到内存中,当服务端有数据查询请求的时候,可以直接从内存中获取数据。如此,一方面服务端可以获得比较快的数据请求响应,…

透明质酸-嵌段共聚物 透明质酸修饰聚乳酸 HA-PLA/PCL/PLGA/PEI/PLL

品牌:为华生物 产地:广州 中文名称:透明质酸-聚乳酸 英文名称:HA-PLA 溶解度:溶于部分有机溶剂 保存时间:一年 PLA分子量:根据客户要求定制 HA分子量:3000--1500K 其他分子量可根据客…

鑫磊股份通过注册:年营收8.2亿 为钟仁志与蔡海红夫妻店

雷递网 雷建平 12月15日鑫磊压缩机股份有限公司(简称:“鑫磊股份”)日前通过注册,准备在深交所创业板上市。鑫磊股份计划募资4.53亿元,其中,1.97亿元用于新增年产3万台螺杆式空压机技改项目,1.0…

Python+Selenium使用Page Object实现页面自动化测试

📌 博客主页: 程序员二黑 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习! 目录…