AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idTCPClient.Connect + Timeout und Abbruch
Thema durchsuchen
Ansicht
Themen-Optionen

idTCPClient.Connect + Timeout und Abbruch

Ein Thema von halinchen · begonnen am 30. Jan 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
Seite 2 von 3     12 3      
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 30. Jan 2007, 16:07
Hallo,

habe noch folgenden Thread in den NewsGroups gefunden: http://groups.google.de/group/borlan...2020fea855b604

Erklärt vielleicht das Problem.

Und viel Erfolg mit den 10er Indys.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#12

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 30. Jan 2007, 16:10
Danke!
Ich denke es ist genau das was ich suche!
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#13

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 30. Jan 2007, 16:52
Ich hab jetzt Indy 10 installiert.

Und es geht nicht...

"Fehler beim Laden von Client.ConnectionTimeOut, Eigenschaft existiert nicht".

Übrigens auch bei einem, außer einem TidTCPClient, komplett leeren Projekt.
Ich probiers erstmal zu beheben, sonst kann ich schlecht weitermachen
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 30. Jan 2007, 17:01
Hast du die Pfade gesetzt?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#15

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 30. Jan 2007, 17:05
Ja. Ich habe selbst alle (und wirklich alle) Packages in Delphi deinstalliert und die *.bpl Dateien gelöscht. Und musste ich ich alles Packages wieder installieren.

Ich nehm jetzt wieder Indy 9, da gibts auch den TidICMPClienten.
Dann steig ich um wenn ich Zeit habe.

EDIT:
Zitat:
Set TIdICMPClient.Host to the Host IP to be checked.
Set TIdICMPClient.ReceiveTimeout to the number of ms to wait.
Call TIdICMPClient.Ping.
Check TIdICMPClient.ReplyStatus.ReplyStatusType.

If the ReplyStatus.ReplyStatusType <> rsTimeOut then it should be safe to
call Connect using the TCP Client. Otherwise connect will block until the
protocol stack times out.
Ich habs genauso gemacht und die CPU-Auslastung ging auf 100%, sonst passiert nichts. Nach ICMP.Ping ist Schluss;
Nach 2 Minuten hab ich es aufgegeben.
Das hatte es allerdings in einem Thread gemacht.

Ohne Thread funktioniert es!
Auf der Seite schien es bei ihm aber zu klappen, nur bei 2 gleichzeitigen nicht.

Hier mein Code:
Delphi-Quellcode:
var
ICMP:TidICMPClient;
begin
ICMP := TidICMPClient.Create(NIL);
ICMP.Host := Host; //Host, Port, TimeO sind globale Variablen des Thread-Objekts
ICMP.Port := Port;
ICMP.ReceiveTimeout := TimeO;
try
ICMP.Ping;
except
... //Hier Thread beenden
ICMP.Free;
exit;
end;
ICMP.Free;
...
end;
halinchen

P.S. Man muss nicht den ReplyStatus.ReplyStatustype abfragen, sondern den Ping-Befehl in einen try...except...end-Block (zumindest ging es bei mir nur so).
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#16

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 1. Feb 2007, 13:09
Ich hab jetzt alles mit Indy 10 getestet. Auch kein Unterschied.
Ich werde die Sache jetzt auf sich beruhen lassen. Ich mach es ja nur als Hobby und ich hätte nie gedacht das sowas so kompliziert ist!

Nochmal ein dickes "DANKE" an alle!

halinchen

P.S. Falls ich trotzdem mal rausfinde worin es lag, schreib ich es hier rein.
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#17

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 7. Feb 2007, 12:29
Ich hab mir das alles nochmal angeguckt.
Die Ping-Indy Kompo braucht irgentwelchen RAW-Zugriff.
-> Man muss Admin sein.

Kennt jemand eine Ping-Komponente, mit der man auch als eingeschränkter Benutzer pingen kann?
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#18

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 14. Feb 2007, 11:37
Für alle die das selbe Problem wie ich haben:
Mit den TimeOut Funktionen der einzelnen Kompos kommt man nicht weiter.
Aber es geht doch:

Ich habe mir einen Thread angelegt, der das Senden übernimmt.
Nun habe ich vor dem Aufrufen des Threads GetTickCount in eine Variable gespeichert.
Und nun in einer Schleife testen ob die Zeit überschritten ist
Delphi-Quellcode:
Tick := GetTickCount;
While (not thread.Terminated) do begin
    Application.ProcessMessages;
    If (GetTickCount-Tick > TimeOut) AND (not thread.state) then break;
    end;
Nochmal zur Erläuterung:
thread.state ist ein Boolean und wird nach dem Verbinden (Client.Connect im Thread.Execute-Teil) auf true gesetzt.
Das habe ich gemacht, das es nicht abbricht wenn es sich schon verbunden hat. Es kann ja sein das das senden etwas länger dauert.

halinchen

//EDIT: Thread.FreeOnTerminate muss True sein, sonst gibt es den Speicher nicht mehr frei!!!
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#19

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 26. Feb 2007, 09:07
Ich stehe vor dem selben Problem...

Es kann doch nicht sein dass man um ein ConnectTimeout abzufangen in einem neuen thread anfangen muss den server zu pingen

Ich mein: ignoriert der IdTCPClient die Eigenschaft "ConnectTimeout" einfach?
Ist doch echt zum heulen

*anfang thread zu schreiben*

wenn irgendwer noch eine andere Idee hat...hierhin
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#20

Re: idTCPClient.Connect + Timeout und Abbruch

  Alt 26. Feb 2007, 12:35
Du kannst auch unter der Eingabeaufforderung "ping computer /w 1" und "ping computer /w 1000". Da kommt auch kein Unterschied .

Wenn du Hilfe brauchst kannst mich ja auch fragen. Ist eigentlich auch nicht schwerer. Wenn du willst zeig ich dir den ganzen Quelltext.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 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