Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy 100% Auslastung (https://www.delphipraxis.net/80798-indy-100-auslastung.html)

Gruber_Hans_12345 15. Nov 2006 14:12


Indy 100% Auslastung
 
Probiere gerade ein paar Sachen mit Indy aus

habe jetzt mal nur folgendes geschrieben (ein Form mit einem TIdTCPServer)

Delphi-Quellcode:
    IdTCPServer1.Bindings.Add.SetBinding('0.0.0.0', 5200);
    IdTCPServer1.Active := TRUE;
alles fein.

dann mache ich mal per Telnet eine Verbindung auf diesen Port (nur Connect, tippe noch nix) und der Server bekommt eine Auslastung von 100%.

Ist das normal, bzw. was mache ich da noch falsch?

3_of_8 15. Nov 2006 14:13

Re: Indy 100% Auslastung
 
Wozu das Binding?

Gruber_Hans_12345 15. Nov 2006 14:19

Re: Indy 100% Auslastung
 
weil der TIdTCPServer dynamisch zur Laufzeit erzeugt wird.

3_of_8 15. Nov 2006 14:35

Re: Indy 100% Auslastung
 
Ja, aber wozu brauchst du das? Hast du einen Client mit IP 0.0.0.0?

Gruber_Hans_12345 15. Nov 2006 14:38

Re: Indy 100% Auslastung
 
nein, 0.0.0.0 definiert ja nur, das auf allen verfügbaren ip Adressen gelauscht wird (zumindest kenne ich das so von den ics Komponenten - und vermute bei indy wirds gleich sein)

3_of_8 15. Nov 2006 14:55

Re: Indy 100% Auslastung
 
Jedes "Binding" ist IIRC ein Client. Ich habe auch schon mit dynamisch erstellten IdTCPServern gearbeitet und habe noch nie diese Zuweisung gebraucht. Lass sie einfach mal weg und schau was passiert.

EDIT: Achja, und nicht vergessen nen Port zu setzen.

Gruber_Hans_12345 15. Nov 2006 15:02

Re: Indy 100% Auslastung
 
auch wieder 100% CPU Last ... in beiden fällen bekommt Telnet ja ne Verbindung zusammen.

dachte Binding ist die Adresse/Port auf der der Server lauscht? (Und nicht ne Verbindung zum Client?)

3_of_8 15. Nov 2006 15:12

Re: Indy 100% Auslastung
 
Das ist allerdings seltsam...

Gruber_Hans_12345 16. Nov 2006 09:48

Re: Indy 100% Auslastung
 
habs schon ...

auf der Indy Seite (http://www.indyproject.org/Sockets/D...Indy10.de.aspx) gibts ne alte Version zum download (10.0.52) und genau die hab ich mir downgeloaded ... mit der neuen funkt es

s.h.a.r.k 16. Nov 2006 10:20

Re: Indy 100% Auslastung
 
Das ganze liegt daran, dass du in der OnExecute-Procedure des TIdTCPServer den folgenden Befehl einfügen musst - der wohl bemerkt immer ausgeführt werden muss!!!):
Delphi-Quellcode:
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz