• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

...sauber programmieren...(mit Schleife?)

wasserundsand

Cox Orange
Registriert
28.02.07
Beiträge
100
Hallo!

Ich habe eine onlineabfrage mit script. das ganze läuft mit einer schleife und funktioniert soweit...nur...wenn ich den computer abschalte rebelliert er weil er ja noch in meiner onlineabfragenschleife hängt.

Liebe PROs wie programmiert man sowas richtig???

LG Hans

P.S.: ich will aber die Schleifendurchläufe nicht begrenzen da sich der onlinestatus ja immer ändern kann.
 
Etwas Source-Code wäre hilfreich bzw. eine etwas detailliertere Beschreibung des Scriptaufbaus. In welcher Programmier/Scriptsprache wird das Programm realisiert ?(PHP ~Fragezeichen) Wie viele Host's im Netz möchtest du auf den "Onlinestatus" überprüfen? (Lässt sich mit PHP ganz einfach realisieren!)

Grüße
Max
 
sorry...

Code:
property loop_true : "1" --									Anfangswert festlegen

property my_net : false --									Anfangswert für Verbindungszustand
--														false...Startwert, kein Netz
--														true...Internet
repeat while loop_true = "1"
	try --												Versuchschleife
		do shell script "ping -s1 -t4 -o www.google.at"
		if my_net = false then --							...kein Fehler, false --> Online
			say "online"
			set my_net to true
		end if
	on error --											...bei Fehler --> Offline
		if my_net = true then
			say "offline"
			set my_net to false
		end if
	end try
	delay 10
end repeat
 
Bist Du sicher, dass der fragliche Server überhaupt auf ICMP-Echo-
Request-Pakete antwortet, d.h. "pingbar" ist? Oder geht es wirklich um google.at?
 
Also wie gesagt, in PHP wäre das ganze sehr einfach zu realisieren, hier ein Beispiel:

Code:
<?php
    function get_computerstatus(){
        // IP oder Host
        $ip = "XXX.XXX.XXX.XXX";
        // Wenn keine Ausgabe von ping.exe erfolgen soll, dann true benutzen.
        $exec = true;
        
        // Pingen der IP mit anschliessender Auswertung
        if($exec) exec("ping $ip -n 1", $array, $return);
        else system("ping $ip -n 1", $return);
        
        // Vergleich der Werte
        if($return){
            print "Server ist offline!";
        }
        else print "Server ist online!";
    }
    get_computerstatus(); 
?>
Hilfreich, ja/nein?

Grüße
 
puh...ich mein php...
hab schon oft davon gehört :-)
...ehrlich gesagt weiss ich aber nicht wo ich php programmieren kann.
...mit dem scripteditor geht das ja wohl nicht...
...kann man mit php auch so viele apple-aplications wie mit applescript ansprechen?

LG Hans
 
Da ich bislang eig. kaum etwas mit Mac OS X zu tun hatte, kann ich dir die letzte Frage nicht beantworten. Für PHP gibt es aber einige OS Editoren (z. B.: Eclipse / http://www.eclipse.org) die dafür wunderbar geeignet sind. Du braucht dauzu lediglich einen PHP-Fähigen Webserver (Apache inkl. PHP-Modul, etc. / www.apache.org). PHP ist sehr einfach zu erlernen und unterscheidet sich kaum von anderen Programmiersprachen, das Manual, die Funktionsreferenz und die Installationsanleitung dazu findest du auf http://www.php.org

Eigentlich wollte ich dir PHP ja gar nicht schön reden, liegt nach wie vor ja an dir. Viele Vorteile sprechen f ü r PHP, ich kann's dir aus eigener Erfahrung auch nur wärmsten's empfehlen.

Grüße
Max
 
...danke für die links die muss ich mir mal zu gemüte führen!
...brauche aber die apple-aplications

LG Hans
 
naja, du könntest es mit einem on idle-handler machen.
dazu das script als application abspeichern und den haken bei "nicht automatisch beenden" setzen (sonst greift der on idle-handler nicht).

on idle
***checkNet()
***return 10
end idle

on checkNet()
-- hier dein code
end checkNet

der return-wert steuert, nach welchem zeitraum der code erneut gezündet werden soll.
gruß, H =:o) L G I
 
  • Like
Reaktionen: 1 Person
Danke!

der seperate teil (on checkNet()) ist vermutli zwecks übersicht!?

LG Hans
 
Was willst Du mit dem Skript eigentlich überhaupt erreichen? Also was ist der Zweck dahinter?
Gruß Pepi
 
Eine andere Möglichkeit wäre, das Script regelmässig per cron starten zu lassen. Dann hast du nicht immer einen Prozess laufen. Ich weiss ja nicht, ob du's wirklich alle 10 Sekunden starten willst, oder ob der Zeitabstand nur zu Testzwecken von Dir so kurz gewählt wurde.

der seperate teil (on checkNet()) ist vermutli zwecks übersicht!?

richtig. das ist natürlich keine pflicht.
 
@pepi...hab mit mail combiniert und kann dan automatisch synchronisieren
8-)

@cloneofmyseelf
wie geht das mit cron bzw was ist das ... grins