Je možné, že začiatočníci nebudú dnes
presne rozumieť ako vlastne fungujú uvedené príklady, pretože sme sa nevenovali ešte programovaniu sieťových aplikácii (aj to príde ak bude záujem), ale o to budú príklady zaujímavejšie a priamo použiteľné.
>>Čo je to Ping?Je to jedna z funkcií ICMP (Control Message Protocol) protokolu, ktorá umožňuje testovať, či vzdialený počítač je pripojený na internet (sieť). Hlavným parametrom tejto funkcie je
IP adresa druhého PC.
V jednoduchosti povedané : vyšlete nejaké ICMP protokolom (alebo Vami) stanovené dáta (echo request, 32bytov) na zvolené PC a to ak je pripojené pošle späť kladnú odpoveď (echo reply). Tým môžete overiť
či je druhé PC pripojené a aj
aké kvalitné spojenie má v závislosti na tom ako rýchlo dostanete
ping odpoveď.
Najjednoduchšie povedané: Akoby ste niekoho
prezvonili mobilom, ale nenadviažete spojenie. Pozdravujem Vila Š.:-), ktorý je v tomto preborník.
>>Pingnite sami seba!Ping je vstavaný aj priamo vo Windows či Linuxe. Poklikajte postupne:
Start-> Run -> Napíšte cmd -> Otvorí sa konzola -> napíšte ping 127.0.0.1Toto Vám bude fungovať aj keď nemáte internet pretože IP adresa 127.0.0.1 reprezentuje tak či tak len Váš počítač (spätná slučka). Ak však máte počítač s internetom môžete vyskúšať pingnúť aj napríklad :
ping inet.sk
>>Naprogramujte si vlastný “pingovací“ program v C# !Príklad nebudem zvlášť rozoberať, je dostatočne okomentovaný. Keď budeme brať sieťové aplikácie, tak si jednotlivé príkazy samozrejme vysvetlím podrobne.
Príklad 1.
using System;
using System.Net.NetworkInformation;
using System.Net;
class OzajJednoduchyPing // oproti v1.1 :-)
{
static void Main(string[] args)
{
string inAddress;
Console.Write("Zadajte IP adresu:");
inAddress = Console.ReadLine();
// na zaciatok si vytvorime instanciu
// triedy Ping
Ping myPing = new Ping();
// Prekonvertujeme si IP adresu zo stringu
IPAddress ipAdress = IPAddress.Parse(inAddress);
// Vysleme poziadavku na odozvu
// a zachytime vystup do premennej reply
PingReply reply = myPing.Send(ipAdress);
Console.WriteLine("Status: {0}",reply.Status);
Console.ReadKey(false);
}
}
}Príklad na stiahnutie (source + exe)Ako vidíte “pingnút“ iné PC je v .NET Framework v 2.0 easy :-) Príklad je veľmi jednoduchý. Ak Vás zaujal, odporúčam Vám pozrieť ešte triedu
PingOptions, kde sa dajú nastaviť také veci ako
TTL (time to live), alebo povolenie fragmentácie.
>>A ten druhý sľúbený príklad ?
Ďalšou triedou, ktorá pribudla je
SmtpClient. Je potrebné ju trochu viac nakonfigurovať ako
Ping, ale aj tak je to stále obrovská pomoc pre programátorov.
SmtpClient-a nemusíme využívať iba priamo v programe, ktorý
slúži na odosielanie e-mailov. Túto triedu by som napr. využil v programe, ktorý v prípade chyby alebo inej nastavenej udalosti
kontaktuje administrátora, či priamo výrobcu programu a pošle im e-mail o udalosti, ktorá ho vyvolala.
Napr. to poznáte z Windows, ktorý sa chce „pochlapiť“ každým úspešne spadnutým programom Billovi.:-), ale zároveň tieto informácie pomáhajú čo najskôr opravovať chyby rôznymi patchmi, čo je fajn.
>>Urobte si vlastný Outlook v C# ! Tento príklad som čo najviac osekal, takže ak chcete, pre hlbšie pochopenie si pozrite veľmi dobre spracovanú dokumentáciu v rámci .NET Framework SDK.
Príklad je tak isto dobre okomentovaný.
Budeme využívať hlavne tieto triedy:
>> SmtpClient - prostriedok na odosielanie e-mailov
>> MailAddress - dobre zvolený názov triedy hovorí a všetko
>> MailMessage - text správy atď.
Príklad 2.
using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
class MyOutLokk
{
static void Main()
{
// Trieda, ktora data odosle
SmtpClient client = new SmtpClient("server");
// Trieda zapúzdrujúca e-mail adresu
MailAddress od = new MailAddress("asdf@asdf.sk");
MailAddress komu = new MailAddress("majl@server");
//Zapúzdruje text
MailMessage message = new MailMessage(od, komu);
// Nastavenie predmetu e-mailu
message.Subject = " Pokusny majl";
// Samotny text e-mailu
message.Body = " Prave si uspesne rozbehal"+
"smtp Klienta";
// Toto je niekedy porebne pridat
// aby server prijal majl
client.UseDefaultCredentials = true;
// ALELUJA
client.Send(message);
}
}
Príklad na stiahnutie (source + exe)Ako dôkaz prikladám screenshot, že
taký jednoduchý program dokáže naozaj odosielať e-maily. Prosím, nevyužívajte na testovanie tohto programu môj e-mail :-))
>>ZáverDúfam, že sa Vám dnešný diel páčil a zároveň sa zväčšil fanklub jazyka C# :-) Tieto tri diely sa zaoberali len malým výňatkom z množiny pridaných tried a funkcií. Zároveň do C# pribudla aj nová syntax, o ktorej si budeme hovoriť v ďalších dieloch.
>>Otázky, pripomienky a konštruktívnu kritiku píšte do diskusie alebo na môj e-mail.
Michal Čižmármicitn@orangemail.sk