| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- {
- $Project$
- $Workfile$
- $Revision$
- $DateUTC$
- $Id$
- This file is part of the Indy (Internet Direct) project, and is offered
- under the dual-licensing agreement described on the Indy website.
- (http://www.indyproject.org/)
- Copyright:
- (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
- }
- {
- $Log$
- }
- {
- Rev 1.4 12/2/2004 4:23:48 PM JPMugaas
- Adjusted for changes in Core.
- Rev 1.3 1/21/2004 1:49:34 PM JPMugaas
- InitComponent
- Rev 1.2 1/17/2003 05:35:28 PM JPMugaas
- Now compiles with new design.
- Rev 1.1 1-1-2003 20:12:40 BGooijen
- Changed to support the new TIdContext class
- Rev 1.0 11/14/2002 02:14:02 PM JPMugaas
- 2000-Apr-17 Kudzu
- Converted to Indy
- Improved efficiency
- }
- unit IdChargenServer;
- {
- Original Author: Ozz Nixon
- }
- interface
- {$i IdCompilerDefines.inc}
- uses
- IdAssignedNumbers,
- IdContext,
- IdCustomTCPServer;
- Type
- TIdChargenServer = class(TIdCustomTCPServer)
- protected
- function DoExecute(AContext:TIdContext): boolean; override;
- procedure InitComponent; override;
- published
- property DefaultPort default IdPORT_CHARGEN;
- end;
- implementation
- uses
- IdIOHandler;
- { TIdChargenServer }
- procedure TIdChargenServer.InitComponent;
- begin
- inherited InitComponent;
- DefaultPort := IdPORT_CHARGEN;
- end;
- function TIdChargenServer.DoExecute(AContext:TIdContext): boolean;
- var
- Counter, Width, Base: integer;
- LIOHandler: TIdIOHandler;
- begin
- Result := true;
- Base := 0;
- Counter := 1;
- Width := 1;
- LIOHandler := AContext.Connection.IOHandler;
- while LIOHandler.Connected do begin
- LIOHandler.Write(Chr(Counter + 31));
- Inc(Counter);
- Inc(Width);
- if Width = 72 then begin
- LIOHandler.WriteLn; {Do not Localize}
- Width := 1;
- Inc(Base);
- if Base = 95 then begin
- Base := 1;
- end;
- Counter := Base;
- end;
- if Counter = 95 then begin
- Counter := 1;
- end;
- end;
- end;
- end.
|