Einzelnen Beitrag anzeigen

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

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

100% CPU-Last bei TCP-Server (IdTCPServer, Indy10)

  Alt 23. Aug 2006, 22:54
Hallo,

ich bin auf dem Gebiet Indy mehr oder weniger komplett neu. Habe mir bisher eine Anwendung zusammengeschrieben, die eigentlich auch wunderbar funktioniert. Das Problem tritt auf wenn der Server läuft und sich der erste Client verbindet. Dann springt die CPU-Last auf 100% (bei meinem Dual-Code halt auf 50%) - wieso?!?

Ich poste mal den folgenden Code, den ich in einer minimalen (!!!) Test-Anwendung benutze:
Delphi-Quellcode:
// Komponenten auf Server-Form: TIdTCPServer, Button1
// Code für Button1
procedure TForm1.Button1Click(Sender: TObject);
var
  s : TIdSocketHandle;
begin
  if not Server.Active then
  begin
    Server.DefaultPort := 50000;
    s := Server.Bindings.Add;
    s.IP := '127.0.0.1';
    s.Port := 50000;
    Server.Active := True;
  end
  else begin
    Server.Bindings.Clear;
    Server.Active := False;
  end;
end;

// --------------------------------------------------------

// Komponenten auf Client-Form: TIdTCPClient, Button1
// Code für Button1
procedure TForm1.Button1Click(Sender: TObject);
begin
  Client.Connect('127.0.0.1', 50000);
end;
Kann mir das irgendwer weiterhelfen?! Oder ist das normal, dass ich da 100% CPU-Auslastung habe? Ich hoffe doch nicht!

PS: Selbst bei der Chat-Demo (von den Indys) ist das so...

PPS: Nutze die Standard-Indys von Delphi 2005, d.h. Indy 10.

mfg Armin
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat