Entwickler-Ecke
Internet / Netzwerk - fsockopen Equivalent in Delphi?
Georg08 - So 05.12.10 20:02
Titel: fsockopen Equivalent in Delphi?
Hallo Community,
Ich aheb mir ein Php-Script geschreiben, dass einen Host anfragt mit fsockopen und wenn dieser (nicht) erreichbar ist einen jeweiligen Text ausgibt
Quelltext
1: 2: 3: 4: 5:
| $socket1 = @fsockopen($host, $port, $errorno, $errorstr, 5); if($socket1 >=1) { echo "Online" } else { echo "Offline" } |
Ich würde das ganze jetzt aber geine in einem Programm realisieren. Zuerst habe ich es mit einem IdIcmpClient versucht, da ich einen Ping machen wollte, aber das ging schief, da er auch wenn der Server noch nicht wirklich Online ist eine Antwort gibt.
Meine Frage wäre jetzt, ob es ein Equivalent in Delphi zu fsockopen gibt...
Danke
jaenicke - So 05.12.10 20:28
Bei Delphi 7 wie in deinem Profil steht müsste es TSocketClient geben.
Und bei Indy könntest du z.B. TIdTcpClient benutzen.
Georg08 - So 05.12.10 20:33
Danke
Habe ungefähr zeitgleich eine lösung gefunden :D
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| uses [...], ScktComp;
[...]
procedure CheckSocket; var Client: TClientSocket; begin Client := TClientSocket.Create(self); Client.ClientType := ctBlocking; Client.Host := '[IP]'; Client.Port := [PORT]; try Client.Open; Client.Close; ConnectionState := SrvOnline; Application.ProcessMessages; except Application.ProcessMessages; ConnectionState := SrvOffline; end; end; |
Als Anregung dafür hatte ich folgendes gefunden:
http://www.lobnan.de/coding/internetverkehr.html (Beispiel2: Der Portscanner)
Narses - So 05.12.10 21:29
Moin!
Du solltest allerdings dringend noch den TClientSocket wieder freigeben, sonst hast du a) ein Speicherleck und b) wirft dir Windows irgendwann ein EOutOfResources um die Ohren, weil die Socket-Handles ausgehen... :idea:
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!