Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server anpingen (https://www.delphipraxis.net/3583-server-anpingen.html)

smax 19. Mär 2003 15:16


Server anpingen
 
Hallo,

ich wollte mal Fragen wie ich überprüfen kann ob ein Server online oder offline ist?

Mit Ping glaub ich aber wie "pinge" ich mit Delphi?

Trouble_Maker 19. Mär 2003 15:27

Hi,
ich weiss nich, ob dir das hier was bringt, aber kannst ja mal schauen!
Auf der Seite wird erklärt, wie man DOS-Befehle mit Delphi nutzt!
Und dann kannst du ja einfach "ping <IP>" angeben.

Hier die Seite:

http://www.tipps.delphi-source.de/sy...020915-3.shtml

bis dann

Trouble_Maker

RomanK 19. Mär 2003 15:29

Es gibt auch eine Komponente bei den Indys ... IDEcho glaub ich ...

smax 19. Mär 2003 15:37

Ok aber das für NT-Systeme läuft auch nur auf NT-System...

Sollte aber auf beiden laufen...

supermuckl 19. Mär 2003 21:30

ICMP komponente von indy clients
hilfe von indy ambesten zu rate ziehen

mein icmp kompo dings auf dem form hab ich "ping" benannt.
port: 0 und protocol: 1
timeout: 6000

beispielcode:

Delphi-Quellcode:



procedure TForm1.pingReply(ASender: TComponent; // wird ausgelöst wenn reply kommt
  const AReplyStatus: TReplyStatus);
begin
Label1.Caption := 'online';
end;

procedure TForm1.Timer1Timer(Sender: TObject); // ping!
begin
 try
ping.Ping
 except
 on Exception do Exit;
end;
end;
:bounce1:

smax 20. Mär 2003 05:36

Wo gebe ich die URL ein?

Christian Seehase 21. Mär 2003 18:20

Moin Smax,

kleiner Tip:

Zieh' Dir mal eine TidIcmpClient Kompo auf ein Formular und schau Dir dann mal den Objekt Inspektor an.

smax 21. Mär 2003 20:12

Sorry aber wo finde ich den TidIcmpClient Komponenten?

Christian Seehase 21. Mär 2003 20:33

Moin Smax,

unter den "Indy Clients" (wie der Name schon vermuten lässt ;-) )

smax 22. Mär 2003 09:56

Ich hab jetzt eine andere sehr gute Lösung gefunden!

Dazu benutze ich den Befehl:

Delphi-Quellcode:
IdHTTP1.Get(edit1.text, responseStream);
Was muss ich da bei uses schreiben, weil jetzt wird ja de Fehler angezeigt:

[Error] Unit1.pas(33): Undeclared identifier: 'IdHTTP1'

RobertS 22. Mär 2003 16:16

Also ich habe folgendes Problem mit dem IdIcmpClient.

Egal was ich für eine IP oder was für einen Port ich angebe, er bekommt immer einen Reply.
Hat jemand ne Idee woran das liegen kann?

Minz 22. Mär 2003 22:05

also ich benutze ServerSocket und ClientSocket und überprüfe

mit dem Client lediglich ob der ServerSocket.active=true ist.

Dies ist eine einfache Methode darf jedoch nicht zu häufig nacheinander ausgeführt werden, weil das System dann ausrastet :)

Ich hab deswegen einen Timer benutzt, der alle 3-5 Sekunden prüft
ob active=true ist, wenn nicht soll er halt versuchen die Verbindung
aufzubauen.
Die Fehler fange ich dann mit ErrorCode=0 ab.

Gruß Minz

smax 22. Mär 2003 22:08

Was soll ich nun bei:

Delphi-Quellcode:
uses
schreiben, wenn ich Indy verwenden will?

Christian Seehase 22. Mär 2003 23:14

Moin Robert,

und was enthält dann AReplyStatus.ReplyStatusType?
Wenn das nicht rsEcho ist, ist der Ping Versuch wohl fehlgeschlagen.

smax 23. Mär 2003 07:32

Danke das in meinem Thread so gut meine Fragen beantwortet werden!

Minz 23. Mär 2003 10:38

keine Ahnung sorry smax, warum benutzt du nicht
TIdIcmpclient wie oben beschrieben,

die Methode ist doch wirkllich einfach, nicht viel Schreibarbeit.

Minz 23. Mär 2003 10:53

...dachte ich zumindest.

@Christian

if ReplyStatus.ReplyStatusType=rsEcho then ...

funktioniert auch immer, egal welcher Port :(

oder darf man =rsEcho nicht so einfach schreiben?

Christian Seehase 23. Mär 2003 12:08

Moin Minz,

seltsam, bei mir geht's so.

Minz 23. Mär 2003 12:10

Sowas hass ich wie die Pest :mrgreen:

bei dem einen funzt es bei dem anderen net, das
ist Diskriminierung :bounce1:

Christian Seehase 23. Mär 2003 16:36

Moin Smax,

sorry :oops:

Vielleicht hättest Du Dein Posting nicht einleiten sollen mit

"Ich hab' jetzt eine Lösung gefunden" ;-)

Wenn Du ganz normal eine TIdHTTP Kompo auf Dein Formular gezogen hast, dann dürfte Dir keine Unit fehlen, da die automatisch mit eingebunden wird.
Da gibt's jetzt noch zwei Möglichkeiten:
Entweder Du willst die Kompo aus einer Unit heraus benutzen, in der sie nicht deklariert ist, dann musst Du diese mit einbinden, oder aber Du willst sie aus einer Prozedur/Funktion heraus benutzen, die keine Methode des Formulares ist. Dann kannst Du entweder die Prozedur/Funktion mit als Methode des Formulares deklarieren, oder Du schreibst den Namen des Formulares mit davor (z.B. Form1.IdHTTP1.Get(...).

smax 23. Mär 2003 19:48

Ok THX!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr.

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