Delphi中遠程控制的實現(二)

二、被控方的程序(Server端):

ServerSocket1的Port設爲:2058。程序界面如下:



源程序如下:

unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ScktComp;

type

TMainForm = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

ServerSocket1: TServerSocket;

procedure ServerSocket1Listen(Sender: TObject;

Socket: TCustomWinSocket);

procedure ServerSocket1ClientConnect(Sender: TObject;

Socket: TCustomWinSocket);

procedure ServerSocket1ClientDisconnect(Sender: TObject;

Socket: TCustomWinSocket);

procedure ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

procedure UpdateState;//更新當前的連接信息

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.UpdateState;

begin

Label1.Caption:='在線人數爲:'+IntToStr(ServerSocket1.Socket.ActiveConnections);

end;

procedure TMainForm.ServerSocket1Listen(Sender: TObject;

Socket: TCustomWinSocket);

begin

UpdateState;

end;

procedure TMainForm.ServerSocket1ClientConnect(Sender: TObject;

Socket: TCustomWinSocket);

begin

UpdateState;

end;

procedure TMainForm.ServerSocket1ClientDisconnect(Sender: TObject;

Socket: TCustomWinSocket);

begin

UpdateState;
end;

procedure TMainForm.ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

s:string;

begin

s:=Socket.ReceiveText;

Memo1.Lines.Add('從客戶端接收的信息爲:'+s);

Socket.SendText('接收信息成功!');

end;

procedure TMainForm.Button1Click(Sender: TObject);

begin

if Button1.Caption='啓動' then

begin

Button1.Caption:='停止';

ServerSocket1.Active:=False;

ServerSocket1.Active:=True;

end else

begin

Button1.Caption:='啓動';

ServerSocket1.Active:=False;

end;

end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if ServerSocket1.Active then

ServerSocket1.Active:=False;

end;

end.


  這樣,程序就編寫成功。運行一下看看自己的勞動成果吧!先運行Server端的程序,然後再運行Client端的程序。界面如下:


  以上程序在Delphi 5.0和 window 98下運行通過。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章