Laden...

Testen, ob online

Erstellt von Maddinel vor 19 Jahren Letzter Beitrag vor 19 Jahren 4.876 Views
Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren
Testen, ob online

Hi ihr, ich möchte als Zusatz für ein bestehendes Programm von mir, einen kleinen Onlinezeiten-Zähler einbauen. Dazu muss ich irgendwie überprüfen, ob der Nutzer online ist oder nicht. Wie kann man das machen?

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

G
36 Beiträge seit 2004
vor 19 Jahren

Moin!

Ich denke, Du könntest höchstens feststellen, ob eine Dfü-Verbindung besteht... (dafür gibts eine DLL).

Wenn Du in einem Netzwerk bist, hast Du keine Möglichkeit festzustellen, ob Du online bist. Du könntest dann höchstens versuchen, eine TCP-Verbindung zu einem Rechner im Internet herzustellen. Aber wenn der mal ausfällt? Wenn dazwischen eine Firewall ist?

Ist nicht trivial das Problem!

Gruß
Jürgen

R
139 Beiträge seit 2004
vor 19 Jahren

ping google an (geht auch durch FWs) 😉

gruß,

r00t

edit:
http://www.csharphelp.com/archives/archive6.html

posted by the real prince of persia

G
36 Beiträge seit 2004
vor 19 Jahren

Wenn die Firewall Pings druchlässt ja....

Gruß
Jürgen

R
139 Beiträge seit 2004
vor 19 Jahren

ähm warum sollte sie PING nicht durchlassen?

wir reden hier von pings nicht von tracert...

posted by the real prince of persia

F
529 Beiträge seit 2003
vor 19 Jahren

Und wenn sie des nicht durchlässt, httpwebrequest auf google.de. Glaube da gibts sogar sowas wie IsConnected oder sowas in dem Typ, oder war das Java?

Verdammich, seit nebenbei noch was mit Java machen muss, bin ich irgentwie verwirrt....

--
mfg
Franknstein

Besuchen sie das VisualC++ - Forum

G
36 Beiträge seit 2004
vor 19 Jahren

Ein Ping nicht durchzulassen, kommt wohl noch daher, dass damit einst DoS-Attacken möglich waren... und traceroute beruht auf einzelne Pings mit unterschiedlichen TTL-Wert.

Abgesehen davon ist es möglich, ein Ping mit einer Firewall zu blocken. Das alleine reicht aus, um es im Programm zu berücksichtigen.

Aber ich habe bis jetzt habe ich auch noch keinen Ausfall von google bemerkt. Von daher sollte eine TCP-Verbindung auf Port 80 von google ausreichend sein, um zu prüfen, ob man online ist.

Wie sieht es eigentlich aus, wenn man hinter einem http und/oder ftp-Proxy steckt? Ist man dann auch online? 😉

Gruß
Jürgen

Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren

Hi, super danke für die vielen Antworten!
Mein Problem ist damit dicke gelöst, denn es ging noch nichtmal um einen Rechner im Netzwerk, sondern nur um einen einzelnen.

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren

So hab nochmal folgende Frage jetzt:

erstelle jetzt einen HttpWebRequest (einfach nur so zum testen, ob das Internet erreichbar ist) und er hängt sich beim ca. dritten mal auf.
Ich lasse ihn folgendes tun:


try
{				
HttpWebRequest httpWebReq =(HttpWebRequest)WebRequest.Create("http://www.google.de/");
httpWebReq.GetResponse();


setOnlineStat();  //eigene Methode (unwichtig!!)
}//try
catch(Exception ex)
{
setOfflineStat();
}//catch

Warum macht er das?

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

R
139 Beiträge seit 2004
vor 19 Jahren

kriegst du eine fehlermeldung? wenn ja welche?

untersuche doch den response. und oder den responsestream.

gruß,

r00t

posted by the real prince of persia

G
36 Beiträge seit 2004
vor 19 Jahren

Hängt sich auf??? Tut also nix mehr???

Haste denn auch schon kleine Debug-Meldungen eingebaut, damit Du sicher sein kannst, dass er wirklich beim HttpWebRequest oder beim GetResponse hängenbleibt?

Gruß
Jürgen

Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren

Das ist es ja, er geht garnicht in den catch-Teil. Ja er bleibt wirklich dort hängen, du kannst es ja kurz bei die kompilieren, ist total komisch. Wie könnte ich das sonst machen?

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

R
139 Beiträge seit 2004
vor 19 Jahren

eigentlich kann man nicht viel falsch machen...
die explizite Typumwandlung ist das einzige was ungewöhnlich ist, hast du das aus einem beispiel? wenn ja woher?

probiere es mal damit


WebRequest request = HttpWebRequest.Create("http://www.google.de/");
WebResponse response = request.GetResponse();
System.IO.Stream instream = response.GetResponseStream();

gruß,

r00t

posted by the real prince of persia

G
36 Beiträge seit 2004
vor 19 Jahren

Läuft bei mir unter Linux/Mono einwandfrei.... Sowohl der Online, als auch der Offline-Fall....
?(

Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren

Hängt!!
Immer wieder die glewiche Scheiße!!
Aber du benutzt Mono unter Linux? Das ist prima, das hatte ich nämlich auch vor, aber hab es nicht hinbekommen das Monopaket zu installieren. Könntest mir da etwas helfen?

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

R
139 Beiträge seit 2004
vor 19 Jahren

kommentiere mal deine 2 meth aus. und probiere es nochmal.

oder du hast sicher eine endlosschleife durch klasseninstanzierung gebaut:

class KlasseA:

KlasseB b = new KlasseB(); //global

class KlasseB:

KlasseA a = new KlasseA(); //global

keine fehlermeldung? lass deinen rechner mal paar minuten laufen...
was verstehst du unter aufhängen?

wenns dann nicht klappt, dann kauf dir einen nicht-hängenden-pc 😁

gruß,

r00t

posted by the real prince of persia

Maddinel Themenstarter:in
1.371 Beiträge seit 2004
vor 19 Jahren

Na es reagiert auf garnichts mehr, lässt sich nicht bewegen .... hängt eben.
Wie hast du Mono installiert? Als *.tar Paket?
Als ich es per YAST installieren wollte, dann hatte ich folgendes Problem:

Er hat YAST geöffnet und gab eine Meldung raus das sich der Festplattenplatz dem Ende nähert, das stimmt auch, betrifft aber die Windowsplatte, nicht die, auf der Linux läuft!!
Dann klicke ich auf OK und YAST bleibt (zumindest für mein Gefühl) ziemlich leer und ich weiß nicht was ich dort dann tun soll.

==============================
Wenn ichs wüsst', würd' ich nicht fragen!!! 😁
==============================

F
529 Beiträge seit 2003
vor 19 Jahren

Hast du auf einen eventuellen Timeout gewartet?

Besuchen sie das VisualC++ - Forum

G
36 Beiträge seit 2004
vor 19 Jahren

Original von Maddinel
Wie hast du Mono installiert? Als *.tar Paket?

Nein, mit Red Carpet... Hab Dir 'ne PM geschrieben, weil es hier OT ist.

Gruß
Jürgen

248 Beiträge seit 2004
vor 19 Jahren

Auch bei mir Hängt er beim Dritten versuch ... ich muss den Debugger abbrechen damit ich die Applikation Schließen kann.

Es ist Schier unmöglich noch irgendetwas zu machen, auch Warten hat keinen sinn, es tut sich nichts.
Die CPU bleibt aber Ruhig was heißt er Rechnet nichts.

Das Programm Stribt, und Hinterlässt im Grunde eine Leiche mit der Nichts anzufangen ist. 🤔 8o 🙁

Kostenlose Backlinks und Linktausch auf linkSpring

183 Beiträge seit 2004
vor 19 Jahren

So, auch mal ne unqualifizierte Antwort:

von MSDN
Die GetResponse-Methode gibt eine WebResponse-Instanz mit der Antwort von der Internetressource zurück. Die zurückgegebene tatsächliche Instanz ist eine Instanz von HttpWebResponse, die für den Zugriff auf HTTP-spezifische Eigenschaften in diese Klasse umgewandelt werden kann.

Bei Verwendung der POST-Methode müssen Sie den Anforderungsstream abrufen, die zu sendenden Daten schreiben und den Stream schließen. Diese Methode ist beim Warten auf das Senden des Inhalts blockiert. Wenn kein Wert für die Zeitüberschreitung festgelegt ist und Sie keinen Inhalt bereitstelllen, ist die Anwendung unbegrenzt blockiert.

Ab und zu reinschauen hilft 😄. Warum der aber grad beim 3. mal hängt? Vielleicht ist der Empfangspuffer voll?

So einfach wie möglich, aber nicht einfacher. [Albert Einstein]

take a look at
* baer-torsten.de
* codinghints

248 Beiträge seit 2004
vor 19 Jahren

_Original von él toro_Ab und zu reinschauen hilft 😄. Warum der aber grad beim 3. mal hängt? Vielleicht ist der Empfangspuffer voll?

Ich schau da Oft genug rein, nur wenn man nicht weis wonach man suchen soll, ist der weg zum Ziel Praktisch unmöglich 🙄

Kostenlose Backlinks und Linktausch auf linkSpring

G
205 Beiträge seit 2003
vor 19 Jahren