Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: TIdTCPServer.OnExecute := ???;

  Alt 19. Sep 2006, 09:46
Hey, also ich würde das ganze vielleicht mal so anfangen - gehe jetzt einfach mal davon aus, dass du auch Indy 10 verwendest

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE} 

uses
  SysUtils, IdTCPServer, IdSocketHandle, IdContext; // Zwei weitere Units nötig!

type
  TTCPServer = class
  private
    IdTCPServer: TIdTCPServer;
    procedure IdTCPServerOnExecute(AContext: TIdContext);
  public
    constructor Create; reintroduce;
  end;

var
  mread: String;

procedure TTCPServer.IdTCPServerOnExecute(AContext: TIdContext);
begin
  
  // HIER KOMMT DEIN CODE BEI EINER ABFRAGE VOM CLIENT


  // Diese Zeile bitte belassen - gegen 100% CPU-Auslastung
  SleepEx(1, True);
end

constructor TTCPServer.Create;
var
  NewBinding : TIdSocketHandle
begin
  IdTCPServer := TIdTCPServer.Create(nil);
  IdTCPServer.DefaultPort := 3724;
  IdTCPServer.MaxConnections := 100;
  IdTCPServer.OnExecute := IdTCPServerOnExecute;
  NewBinding := IdTCPServer.Bindnig.Add;
  NewBinding.IP := '127.0.0.1'; // solltest noch ändern
  NewBinding.Port := 3724; // sollte passen
  IdTCPServer.Active := True;
end;

begin
  with TTCPServer.Create do
  try
    writeln( 'running, press [enter] to terminate' ) ; readln(mread);
  finally
    free;
  end;
end.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat