AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerkstatus ermitteln

Ein Thema von tdroese · begonnen am 22. Dez 2013 · letzter Beitrag vom 22. Dez 2013
 
tdroese

Registriert seit: 12. Nov 2013
7 Beiträge
 
#1

Netzwerkstatus ermitteln

  Alt 22. Dez 2013, 12:31
Hallo Forum!

Vorab wünsche ich euch allen ein schönes Weihnachtsfest und einen guten Rutsch ins Jahr 2014.

Ich hoffe hier im Forum noch ein kleines Geschenk abstauben zu können - ich weiß nämlich nicht mehr weiter. Die letzten 2 Tage versuche ich den Verbindungsstatus meiner Anwendung zu ermitteln. Aber der Reihe nach.

Meine Anwendung kann über drei Kanäle funktionieren.

a) Direkte Anbindung an die Datenbank (Intranet - Büro).
b) Indirekte Anbindung an die Datenbank über Webservices (Internet - Unterwegs).
c) Offline - Nutze eine lokale Firebird-DB (Offline - ohne Verbindung).

Die Dynamik läuft auch soweit ganz gut (wenn ich es mit einem Schalter umlege). Nun würde ich gern den "Status" der Verbindung automatisch (Timer/Thread) ermitteln (alle 10 Sekunden).

Dazu habe ich mich an TIdICMPClient, TIdTCPClient, TWebBrowser und auch den alten TClientSockets versucht. Inzwischen sehe ich aber vermutlich den Wald vor lauter Bäumen nicht mehr.

Ich hatte/habe folgenden Ansatz.

Versuche die lokale IP 10.10.1.115 zu pingen/connecten. Sofern eine Verbindung möglich ist bzw. der Host gefunden wird - dann handelt es sich um eine "Intranet-Verbindung = conIntranet".

Sofern dieser Host nicht gefunden/connected werden kann - versuche meinetwegen "Google.de" oder sonst eine Seite zu erreichen. Falls dies möglich ist handelt es sich um eine "Internet-Verbindung = conInternet").

Hat nun jemand das Netzwerkkabel getrennt, oder WLAN abgeschaltet und die Komponente liefert einen Host Fehler, dann arbeite "Offline = conOffline".

Die TIdICMPClient Geschichte habe ich recht flott verworfen, da dies nur bei Admin-Zugang funktioniert. Sobald jemand als "Benutzer" angemeldet ist - geht es nicht mehr.

Bei den anderen Varianten bekomme ich teilweise Ergebnisse, aber die Reaktionszeiten sind mehr als lang.

Hat jemand von euch eine Idee wie man den Status einer Verbindung sauber und zyklisch im Thread ermitteln kann?

Wenn ich das Manuell mit "Ping" als cmd ausführe, dann habe ich meine Info in < 5 Sekunden. Mein Programm hängt hier > 10.

Habe bewusst keinen Code angehängt - da es mir um andere/bessere Ideen geht...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 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