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!!!
==============================
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?
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?
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!!!
==============================
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:
Haste denn auch schon kleine Debug-Meldungen eingebaut, damit Du sicher sein kannst, dass er wirklich beim HttpWebRequest oder beim GetResponse hängenbleibt?
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!!!
==============================
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?
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!!!
==============================
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!!!
==============================
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
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 :D. Warum der aber grad beim 3. mal hängt? Vielleicht ist der Empfangspuffer voll?
So einfach wie möglich, aber nicht einfacher. [Albert Einstein]