![]() |
Re: idTCPClient.Connect + Timeout und Abbruch
Hallo,
habe noch folgenden Thread in den NewsGroups gefunden: ![]() Erklärt vielleicht das Problem. Und viel Erfolg mit den 10er Indys. Grüße Klaus |
Re: idTCPClient.Connect + Timeout und Abbruch
Danke!
Ich denke es ist genau das was ich suche! :party: |
Re: idTCPClient.Connect + Timeout und Abbruch
Ich hab jetzt Indy 10 installiert.
Und es geht nicht... :cry: "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 :wink: |
Re: idTCPClient.Connect + Timeout und Abbruch
Hast du die Pfade gesetzt?
|
Re: idTCPClient.Connect + Timeout und Abbruch
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:
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:
halinchen
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; 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). |
Re: idTCPClient.Connect + Timeout und Abbruch
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! :shock: Nochmal ein dickes "DANKE" an alle! :thumb: halinchen P.S. Falls ich trotzdem mal rausfinde worin es lag, schreib ich es hier rein. :coder: |
Re: idTCPClient.Connect + Timeout und Abbruch
Ich hab mir das alles nochmal angeguckt. :shock:
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? |
Re: idTCPClient.Connect + Timeout und Abbruch
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: :lol: 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:
Nochmal zur Erläuterung:
Tick := GetTickCount;
While (not thread.Terminated) do begin Application.ProcessMessages; If (GetTickCount-Tick > TimeOut) AND (not thread.state) then break; end; 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!!! |
Re: idTCPClient.Connect + Timeout und Abbruch
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 :roll: Ich mein: ignoriert der IdTCPClient die Eigenschaft "ConnectTimeout" einfach? Ist doch echt zum heulen :cry: *anfang thread zu schreiben* wenn irgendwer noch eine andere Idee hat...hierhin :-) |
Re: idTCPClient.Connect + Timeout und Abbruch
Du kannst auch unter der Eingabeaufforderung "ping computer /w 1" und "ping computer /w 1000". Da kommt auch kein Unterschied :wink: .
Wenn du Hilfe brauchst kannst mich ja auch fragen. Ist eigentlich auch nicht schwerer. Wenn du willst zeig ich dir den ganzen Quelltext. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 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