www.pudn.com > Indy10_New_Demo.rar > ClientTask.pas
unit ClientTask;
interface
uses
IdTask, IdTCPClient;
type
TClientTask = class(TIdTask)
protected
FCount: Integer;
FClient: TIdTCPClient;
FMaxCount: Integer;
public
procedure AfterRun; override;
procedure BeforeRun; override;
constructor Create(
ACount: Integer
); reintroduce;
function Run: Boolean; override;
end;
implementation
uses
SysUtils;
{ TClientTask }
procedure TClientTask.AfterRun;
begin
FClient.IOHandler.WriteLn('Quit');
FClient.Disconnect;
FreeAndNil(FClient);
inherited;
end;
procedure TClientTask.BeforeRun;
begin
inherited;
FCount := 0;
FClient := TIdTCPClient.Create(nil);
FClient.Connect('127.0.0.1', 6000);
end;
constructor TClientTask.Create(ACount: Integer);
begin
inherited Create(nil);
FMaxCount := ACount;
end;
function TClientTask.Run: Boolean;
begin
FClient.IOHandler.WriteLn('Kudzu');
FClient.IOHandler.ReadLn;
Inc(FCount);
Result := FCount < 500;
end;
end.