APP下载

网络机房远程管理软件自行设计初探

2009-10-26姚茂群

新媒体研究 2009年13期
关键词:服务器端调用控件

姚茂群

[摘要]主要介绍利用delphi开发工具软件进行的一种软件设计过程,并对设计中关键技术WIN32 API、管道、进程操作api、indy网络开发套件以及网络多线程的使用进行阐述。

[关键词]DelphiWIN32 APIindy网络开发套件多线程

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0710028-01

一、引言

随互联网的日益普及,各学校加大计算机硬件设备投入,给机房管理人员对服务器的维护和管理较大的压力和负担。为此,本文介绍的这种软件就是针对这种情况而进行设计的,它使得机房管理人员无论在任何时候以及任何位置,只要有一台连接互联网的计算机就可以随时登录需要维护的服务器进行维护,极大地方便和减轻了管理人员的工作压力。

二、系统开发环境

系统是在美国BORLAND公司的计算机语言开发系统Delphi7.0上进行开发的。能够在Windows 98、Windows NT、Windows XP、Windows 2003环境下运行。

三、系统功能设计(总体设计)

系统的功能分为两大部分:服务器端和客户端。

1.服务器端主要功能。服务器端主要用来接收客户端发来的请求,并对接收的请求进行分析,对符合条件的请求给予响应。主要功能如下:

(1)自启动模块:控制软件随Windows启动。(2)服务器端管理模块:设置连接密码,启动和停止服务功能。(3)日志显示模块:显示客户端的操作日志。(4)请求分析模块:响应客户端的请求,调用正确的响应程序。(5)响应密码验证模块:判断是否允许对客户端控制。(6)响应远程文件操作模块:通过请求分析程序调用正确的具体文件操作程序。(7)响应远程命令行模块:获得指定dos命令的执行结果,并把结果发送到客户端。(8)响应远程进程管理模块:获得进程列表,停止指定的进程,并把结果发送到客户端。(9)响应远程服务管理模块:获得服务列表,启动和停止服务,并把结果发送到客户端。(10)文字通讯模块:接收客户端信息,发送用户输入的信息。

2.客户端主要功能。客户端主要是用户向服务器端发出需要服务的请求,等待服务器端的回应。主要功能有:

(1)网络连接模块:连接和断开服务器端。(2)本地文件管理模块:显示文件列表、删除文件或者目录、重命名、新建目录。(3)远程文件管理模块:与服务器端进行交互,管理服务器端的文件。(4)本地命令行模块:执行指定的dos命令,并显示结果。(5)远程命令行:与服务器端进行交互,在客户端显示指定dos命令,在服务器端显示执行结果。(6)远程进程管理模块:与服务器端进行交互,对服务器端进程进行管理。(7)远程服务管理模块:与服务器端进行交互,对服务器端的服务进行管理。(8)文字通讯:接收服务器端信息,发送客户用户输入的信息。

四、软件的详细设计

(一)通信的数据包结构。客户端要对服务器端进行操作,就要通过网络,发送数据包给服务器端。服务器端分析数据包,调用相应的功能模块,做出正确的响应,返回结果到客户端。而这个数据要有一定的格式才能被双方所识别。

(二)客户端详细设计。是对客户端的各模块的功能和子功能规划处理流程,由于各模块的流程较多,下面仅举远程文件管理模块中的上传文件模块进行简单说明:

procedure TForm_client.FileTool_upfileClick(Sender:TObject);

处理流程:上传文件。从本地文件选择要上传的文件,然后上传文件。文件按split划分段数,分段传输。续传文件时,按以存在文件的大小算出开始分段数,从开始分段数传输文件。

(三)服务器端详细设计。下面仅举请求分析模块进行简单说明,请求分析模块的主要功能:响应客户端的请求,调用正确的响应程序。

主要函数和过程:procedure Tform_server.IdTCPServer1Execute(A

Thread:TIdPeerThread);

处理流程:接收客户端数据时调用此事件过程。对数据包进行分析,把数据分成四段,存入数组,第一段为功能号,第二段为子功能号,第三段第四段为参数。从而对相应客户端请求调用相应的处理程序。

五、关键技术的实现

(一)WIN32 API的使用。DELPHI中将C或C++中引用的WINDOWS.H头文件改写为WINDOWS.PAS单元,使WINDOWS API函数的定义符合PASCAL语法。而其他的头文件在DELPHI中也都有相应的.PAS单元一一对应,所以在DELPHI中调用API函数时,只须将相应的API函数单元加入到USES语句的单元之中,便可直接调用相应的函数了。

(二)管道的使用。使用管道的好处在于:读写它使用的是对文件操作的api,结果操作管道就和操作文件一样。即使你在不同的计算机之间用命名管道来通信,你也不必了解和自己去实现网络间通信的具体细节。该软件的设计在客户端和服务器端中都用到了匿名管道,它允许你和完全不相干的进程通信,条件是这个进程通过控制台“console”来输入输出。

(三)进程操作api的使用。用以下两组API调用实现:

1.创建系统的所有进程列表:

ProcessList:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

2.提取进程列表项信息存储在TPROCESSENTRY32 pe中:

Process32First(ProcessList,pe),

Process32Next(ProcessList,pe)。

(四)indy网络开发套件的使用。INDY提供INTERNET流行协议的客户端和服务器控件。INDY控件集的客户端和服务器控件都有完整、详细的源代码例程和帮助文件,根据一些例程就可简单方便快速的建造各种服务器程序,在开发该软件中服务器端使用了TIDTCPServer控件,客户端采用了TIDTCPClient控件。它们各自的属性和方法,编程时,参照相关参数进行设置就可以了。

(五)在delphi中使用多线程技术。Windows为线程控制提供了一系列的API函数调用。在Delphi中利用线程,可以直接调用Windows API的CreateThread函数来创建一个线程,也可以利用Delphi的VCL库中的TThread对象,取代直接调用Windows API函数,这样就可以直接对系统的底层进行操作。

参考文献:

[1]何国民,实验选课系统的设计及实现,实验科学与技术,成都:电子科技大学出版社,2004.

[2]陈省,Delphi深度探索(第二版)[M].北京:电子工业出版社,2004.

[3]飞思科技产品研发中心,Delphi 7基础编程[M].北京:电子工业出版社,2003.

猜你喜欢

服务器端调用控件
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于Android Broadcast的短信安全监听系统的设计和实现
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
一种基于Java的IM即时通讯软件的设计与实现
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
利用RFC技术实现SAP系统接口通信
利用VF6.0的Timer控件实现动画效果
C++语言中函数参数传递方式剖析