www.pudn.com > linuxserver.rar > ServerUnit.pas


unit ServerUnit;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms, 
  QDialogs, QStdCtrls,Sockets, IdBaseComponent, IdComponent, IdTCPServer,
  QExtCtrls, IdAntiFreezeBase, IdAntiFreeze;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdTCPServer: TIdTCPServer;
    edtPort: TEdit;
    Memo1: TMemo;
    Button2: TButton;
    lblSUm: TLabel;
    edtData: TEdit;
    Timer1: TTimer;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure Button1Click(Sender: TObject);
    procedure IdTCPServerConnect(AThread: TIdPeerThread);
    procedure IdTCPServerDisconnect(AThread: TIdPeerThread);
    procedure IdTCPServerException(AThread: TIdPeerThread;
      AException: Exception);
    procedure IdTCPServerExecute(AThread: TIdPeerThread);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  iCOunt : integer = 0;

implementation

{$R *.xfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTCPServer.DefaultPort := StrToIntDef(edtPort.Text,6666);
  IdTCPServer.Active := True;
  Button1.Enabled := False;
  Button2.Enabled := True;
end;

procedure TForm1.IdTCPServerConnect(AThread: TIdPeerThread);
begin
  inc(iCOunt);
  lblSUm.Caption := IntToStr(iCount);
end;

procedure TForm1.IdTCPServerDisconnect(AThread: TIdPeerThread);
begin
  Dec(iCOunt);
  lblSUm.Caption := IntToStr(iCount);
end;

procedure TForm1.IdTCPServerException(AThread: TIdPeerThread;
  AException: Exception);
begin
  memo1.Lines.Add('exception');
end;

procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread);
var
  sData : string;
begin
  sData := AThread.Connection.ReadLn();
  edtData.Text := sData;
  AThread.Connection.WriteLn('server send :'+sData);
  AThread.Connection.Disconnect;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  IdTCPServer.Active := False;
  Button1.Enabled := True;
  Button2.Enabled := False;
end;

end.