论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP JSP .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 代写论文

局域网监控程序的设计(论文+程序)

客户端从Config.ini获取管理端的IP地址和开放端口(8080),客户端得知IP和端口后便主动向管理端发送连接请求,管理端接受请求与客户端建立连接,管理端想对客户端实施监控操作时,便发送操作指令给客户端,客户端接受指令并在内部解析,客户端得出结果并返回给管理端,管理端在界面上显示出返回的操作结果。 paper51.com

要建立与服务器的连接,应首先要知道服务器的IP地址和开放通信端口,在1024以下的端口号中,很多都已经分配出去了,如FTP的端口为20和21,SMTP的端口是25,WEB服务器的端口为80等,为防止无意间的冲突,选择了8080为客户端的开放通信端口。

内容来自www.paper51.com

在客户端有个Config.ini的服务器配置文件,在文件里输入服务器的主机IP以及服务器开放的通信端口8080,这样就指定好了服务器的IP和端口

内容来自www.paper51.com

begin 内容来自论文无忧网 www.paper51.com

  filepath := ExtractFilePath(Application.ExeName); paper51.com

  inifile := TIniFile.Create(filepath +'Config.ini'); copyright paper51.com

   IP_str      :=inifile.ReadString('服务器设置','服务器地址','127.0.0.1');

内容来自www.paper51.com

   post_int    := inifile.ReadInteger('服务器设置','端口',8080); http://www.paper51.com

Gjtime := 1;

内容来自论文无忧网 www.paper51.com

   Servername:=IP_str; paper51.com

end; copyright paper51.com

运行客户端通过config.ini得知管理端的IP和通信端口后便主动向管理端发送连接请求,要实现主动连接管理端这里用到了一个Timer控件,在客户端上添加一个Timer控件,把控件的interval属性设置为10000,也就是每隔10000毫秒向管理端发送一次连接请求。 paper51.com

以下代码便是利用Timer控件主动连接管理端的判断语句,如果建立连接,就向管理端发送被监视电脑的计算机名称、IP地址和操作系统类型。 http://www.paper51.com

procedureTServerForm.Timer1Timer(Sender: TObject);

内容来自论文无忧网 www.paper51.com

begin

paper51.com

 try 内容来自www.paper51.com

 if not IdTCPClient1.Connected then paper51.com

 begin paper51.com

  if ConRpcport(IdTCPClient1) then 内容来自www.paper51.com

     begin

内容来自www.paper51.com

        if not IdTCPClient1.Connected then exit; paper51.com

        SendStreamToClient(IdTCPClient1,'000',ComputerName+#13+GetOSName(GetOSVersion)); copyright paper51.com

        ClientHandleThread:=TClientHandleThread.Create;

paper51.com

    end; copyright paper51.com

 end;

paper51.com

 except

内容来自论文无忧网 www.paper51.com

 end; copyright paper51.com

end;

paper51.com

当客户端发送连接请求时,管理端在线便可以接收到客户端的请求,并与客户端建立连接,同时在界面通过ListView控件显示客户端的电脑名称、IP地址、操作系统。StatusBar控件显示已成功启动和在线主机有几台

paper51.com

begin

内容来自论文无忧网 www.paper51.com

   count:=0;

内容来自论文无忧网 www.paper51.com

   MyFirstBmp:=TMemoryStream.Create; paper51.com

   IdTCPServer1.DefaultPort:=8080 ;//服务器端口 paper51.com

   IdTCPServer1.Active:=true; paper51.com

   if  IdTCPServer1.Active then http://www.paper51.com

   StatusBar1.Panels.Items[0].Text:='已成功启动';

paper51.com

   StatusBar1.Panels.Items[1].Text:='在线主机0台';

copyright paper51.com

end; paper51.com

判断在线主机有几台:

http://www.paper51.com

procedureTMainForm.ListView1Change(Sender: TObject; Item: TListItem;

paper51.com

  Change: TItemChange);

内容来自论文无忧网 www.paper51.com

begin copyright paper51.com

StatusBar1.Panels.Items[1].Text:='在线主机'+inttostr(ListView1.Items.Count)+'台'; 内容来自www.paper51.com

end;

copyright paper51.com

3.3.5 自定义控制协议标识符 copyright paper51.com

客户端和管理端建立连接以后,客户端通过管理端操作界面上的每个功能按钮来对被监视电脑进行操作,这里要说明的是在这个程序里管理端向客户端发送的操作指令是自定义的控制协议标识符,用010、012等阿拉伯数字来表示,这些自定义标识符的作用就是管理端和客户端之间的协议,管理端通过发送这些标识符来告诉客户端该做什么。 paper51.com

管理端通过自定义函数ZhuDongCmdSend向客户端发送标识符,例如:

paper51.com

procedureTMainForm.SpeedButton4Click(Sender: TObject);

copyright paper51.com

begin

copyright paper51.com

ZhuDongCmdSend('093','', false); 

内容来自www.paper51.com

end; 内容来自www.paper51.com

其中093就代表的是关机标识符

paper51.com

客户端收到093这个指令后在自己协议列表里寻找093这个指令的意思并进行操作:

paper51.com

if RDStrList[0] = '093'then      //关机

paper51.com

  begin http://www.paper51.com

      SOkz(1);

copyright paper51.com

      exit;

内容来自www.paper51.com

  end;

http://www.paper51.com

当找到093为关机指令时,调用Sokz函数进行关机操作。

http://www.paper51.com

------分隔线----------------------------
联系方式