Nefunguje internet, co mám dělat? Aneb šéfíme v C#
V minulé lekci, Nahrání/stažení souboru z FTP v C# .NET, jsme si ukázali nahrání a stažení souboru z
FTP serveru v C# .NET pomocí třídy WebClient
a jejích metod
UploadFile()
a DownloadFile()
.
Stalo se vám někdy, že prostě nefungoval internet a vy jste museli čekat a stále se dívat jestli už "naskočil"?
Pojdmě si spolu napsat jednoduchou aplikaci, která nás upozorní až internet naskočí. Je to snadné! Stačí nám klasická konzolová aplikace.
Nejprve si vytvoříme metodu, která bude pingovat danou adresu. Pokud se packet vrátí interne funguje.
Metoda je tak zjednodušená, že není třeba nic vysvětlovat. Jen tak ze zajímavosti se ale určitě podívejte na všechny možnosti, které nám nabízí třída Ping.
public static bool Ping(string url) { Ping ping = new Ping(); PingReply reply = ping.Send(url, 3000); if (reply.Status == IPStatus.Success) return true; return false; }
Posílání sms je popsáno v tomto článku: Posílání SMS v C#
A pak jen program zacyklíme. Teď jestli tento článek čte Kit, tak mě
bude ten cyklus dlouho vyčítat V programu, by se totiž mělo používat co nejméně cyklů,
vyvarovat se zanořených cyklů a už vůbec by se nemělo používat
nekonečných cyklů. Tzn for(;;) a while(true) nemá v programu co dělat. Ale
tohle je jen naše drobná utilitka a dáme si tam Thread.Sleep, aby to nejelo
pořád, takže to tolik nevadí Jinak, pokud někomu jó tak si vytvoří instanci
Windows Form Timeru
a bude to samé volat v události
Tick
static void Main(string[] args) { while (true) { if (Ping("www.google.com")) { sendSMS(); MessageBox.Show("Hej funguje to, funguje, popláááách!!!!"); break; } else { Console.WriteLine("Zatím nic :'("); } System.Threading.Thread.Sleep(5000); } }