Also, ich habe eine Anwendung in Python, aber ich möchte wissen, ob der Computer (auf dem die Anwendung läuft) von einem anderen entfernten Computer aus eingeschaltet ist.
Gibt es eine Möglichkeit, dies zu tun? Ich dachte daran, UDP-Pakete zu verwenden, um eine Art Keep-Alive zu senden, mit einem Zähler. Ex. alle 5 Minuten sendet der Client ein UDP-Keep-Alive-Paket an den Server. Vielen Dank im Voraus!
Wenn Sie tatsächlich testen möchten, ob ein bestimmter Dienst auf dem Remotecomputer ausgeführt wird, können Sie testen, ob der Netzwerkanschluss, auf dem dieser Dienst ausgeführt werden soll, erreichbar ist. Beispiel:
%Vor%Wenn die Anwendung, für die Sie testen möchten, auf z. Port 1337, dann überprüfen Sie diesen Port.
Zuerst sollten Sie wissen, dass es keinen Standard gibt, um zu bestimmen, ob ein Computer eingeschaltet ist oder nicht, und dies ist nicht abhängig von Sprache / Plattform. Ein Computer kann jeden Zustand fälschen, den Sie überprüfen möchten.
Aber der übliche Weg zu überprüfen, ob ein Computer eingeschaltet ist, sendet einen Ping (ICMP-Echoanforderung). Diese Antwort zeigt, wie ein Ping mit Python gesendet wird.
Es scheint, dass Sie nach einem Netzwerk- / Host-Überwachungstool oder einem einfachen Herzschlagmonitor suchen. Abhängig von den Besonderheiten (wie Anzahl der Hosts zu überwachen), etwas wie Nagios , Munin oder Herzschlag könnte helfen.
Ja das ist der Weg zu gehen. So etwas wie das Senden von Heartbeat Ping. Seit seiner UDP und seit seiner nur eine Header-Nachricht können Sie die Frequenz auf 10 Sekunden reduzieren. Dies sollte keine messbare Leistungsverschlechterung des Systems verursachen, da es nur zwei Systeme gibt, über die wir sprechen.
Ich fühle hier, UDP ist vielleicht besser im Vergleich zu TCP. Sein geringes Gewicht, verbraucht nicht viel Systemressourcen und ist theoretisch schneller. Nachteil wäre, dass es Paketverluste geben könnte. Sie können das umgehen, indem Sie eine Logik einbauen, wenn zum Beispiel 10 Pakete (im Abstand von 10 Sekunden) nicht nacheinander empfangen werden und dann das andere System für nicht erreichbar erklären.