Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Folgender Code, soll prüfen, ob der Rechner online ist und wenn nicht alle 30 Sekunden prüfen, ob der Rechner dann online ist. Wenn ja soll der Timer gestoppt und das pingen eingestellt werden.
Zwei Dinge:
1) Wenn der Rechner offline bzw. der Host nicht erreichbar ist gibt es eine Exception. Warum und was kann getan werden? Wieso gibt "IPStatus.Success" nicht einfach "false" zurück und alles ist gut?
2) Abgesehen von der Exception: Funktioniert der Code so überhaupt? Ich frage nicht, ob er gut und professionell geschrieben ist, sondern nur, ob er so verwendet werden kann und von der Logik her stimmt.
[src=csharp]
string isOnline = "Offline";
public void testping()
{
timer1.Start();
if (timer1.Enabled == true)
{
Ping ping = new Ping(); // Soll alle 30 Sekunden ausgeführt werden, wenn Offline
PingReply pingReply = ping.Send("www.google.de"); // Exception wenn Offline :-(
if (pingReply.Status == IPStatus.Success == true) {
isOnline = "Online";
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
// Timer aktivieren
timer1.Interval = 30000; // 30 Sekunden
timer1.Enabled = true;
// Prüfen, ob Computer online
testping();
if (isOnline == "Offline") {
testping();
} else {
lblIsOnline.Text = "Online";
timer1.Stop();
timer1.Enabled = false;
// Hier wird dann die Systemabfrage durchgeführt
}
lblStatusTimer.Text = timer1.Enabled.ToString();
[...][/src]
Zwei Dinge:
1) Wenn der Rechner offline bzw. der Host nicht erreichbar ist gibt es eine Exception. Warum und was kann getan werden? Wieso gibt "IPStatus.Success" nicht einfach "false" zurück und alles ist gut?
2) Abgesehen von der Exception: Funktioniert der Code so überhaupt? Ich frage nicht, ob er gut und professionell geschrieben ist, sondern nur, ob er so verwendet werden kann und von der Logik her stimmt.
[src=csharp]
string isOnline = "Offline";
public void testping()
{
timer1.Start();
if (timer1.Enabled == true)
{
Ping ping = new Ping(); // Soll alle 30 Sekunden ausgeführt werden, wenn Offline
PingReply pingReply = ping.Send("www.google.de"); // Exception wenn Offline :-(
if (pingReply.Status == IPStatus.Success == true) {
isOnline = "Online";
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
// Timer aktivieren
timer1.Interval = 30000; // 30 Sekunden
timer1.Enabled = true;
// Prüfen, ob Computer online
testping();
if (isOnline == "Offline") {
testping();
} else {
lblIsOnline.Text = "Online";
timer1.Stop();
timer1.Enabled = false;
// Hier wird dann die Systemabfrage durchgeführt
}
lblStatusTimer.Text = timer1.Enabled.ToString();
[...][/src]
Zuletzt bearbeitet: