Embedded C: Überprüfen Sie die Internetverbindung


8

Gibt es eine Möglichkeit zu überprüfen, ob mein eingebettetes Gerät tatsächlich eine funktionierende Verbindung hat (dh das WAN erreichen kann)? Mein Gerät hat kein RTOS, daher kann ich mich nicht auf Betriebssystemfunktionen wie Ping verlassen. Ich kann sehen, dass der DHCP meinem Gerät eine korrekte IP-Adresse gibt, aber es ist nicht 100% wahr, dass ich bei einer korrekten IP-Adresse beispielsweise www.google.com erreichen kann.

Ich habe bereits einige Nachforschungen angestellt und es gibt verschiedene Ansätze:

  1. es ist unmöglich
  2. Es ist eine dumme Frage
  3. Problemumgehungen aller Art, aber ich bin zuversichtlich in Bezug auf SO, also werde ich es versuchen.

Wenn diese Frage 1) oder 2) als Antwort hat, werde ich sie entfernen und es ist in Ordnung.


Wofür verwenden Sie das Gerät? Prüft die Internetverbindung, ob die Verbindung funktioniert, wenn Ihre primäre Funktionalität dies irgendwie nicht tut?
Helmar

@Helmar Ich muss sicher sein, dass die Internetverbindung funktioniert, da ich über das Internet auf das Gerät zugreifen und Daten damit austauschen muss
panc_fab

1
Ich bin mir nicht sicher, ob ich verstehe, was Sie versuchen zu tun. Ihr Ziel ist es, jederzeit über das Internet aus der Ferne auf das Gerät zuzugreifen, richtig? Sie haben also bereits eine aktive Komponente im Internet unter Ihrer Kontrolle. Warum versuchen Sie nicht, diese Komponente zu erreichen und alles zu tun, um die Konnektivität wiederherzustellen, wenn dies fehlschlägt?
Helmar

Ja, ich gehe davon aus, dass das, was Sie sagen, das Klügste sein könnte. Manchmal verliere ich mich in Problemen, die keine Probleme sind. Ich bin ziemlich neu in der eingebetteten Umgebung und werde leicht verwirrt. Vielen Dank! Ich werde später eine Antwort posten, um die Frage zu schließen.
panc_fab

Antworten:


4

Danke Jungs für die Unterstützung. Ich habe endlich die von Helmar beschriebene Methode angewendet, bei der ich nur versuche, das gewünschte Ziel zu erreichen und zu sehen. Wenn ich eine Antwort vom Ziel erhalten kann, weiß ich, dass meine Verbindung aktiv ist und funktioniert. Andernfalls kann ich das Gerät trennen und erneut versuchen, eine neue Verbindung herzustellen.


3

Ich kann mich nicht auf Betriebssystemfunktionen wie Ping verlassen.

Implementieren Sie Ping selbst. Sie können wahrscheinlich ein Beispiel für Ihre Plattform finden.

Oder kontaktieren Sie einen Dienst über ein anderes Protokoll, das Sie unterstützen können. Gehen Sie nur nicht davon aus, dass der Dienst für die gesamte Lebensdauer des Geräts verfügbar bleibt, es sei denn, es handelt sich um einen von Ihnen verwalteten Server.

Ich muss über das Internet auf das Gerät zugreifen und Daten damit austauschen

Wenn Ihr eigentliches Ziel darin besteht, eingehenden Datenverkehr zuzulassen , ist dies im Allgemeinen eine schlechte Idee und für Endbenutzer schwierig, ihre Netzwerke zuzulassen. Stattdessen stellen Sie normalerweise eine ausgehende Verbindung zu einem Server her, über den der überprüfte eingehende Datenverkehr, der für Ihr Gerät bestimmt ist, getunnelt oder weitergeleitet werden kann. Sie können den Code, mit dem dieser Tunnel hergestellt / gewartet / wieder verbunden wird, problemlos mit einem Ausgabemechanismus ausstatten, um seinen Zustand anzuzeigen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.