Či už chcete čítať z internetu, alebo len menšej LAN siete, .NET vám prináša mnoho pomocníkov.
V .NET frameworku nájdete niekoľko tried ktoré sa zaoberajú čítaním z internetu a siete, čo je v dnešnej dobe nevyhnutná súčasť nášho života. Väčšinu tried nájdete v mennom priestore System.Net, niektoré sa však nachádzajú aj v System.Net.Sockets.
Sťahovanie z HTTP
Pre jednoduché sťahovanie obsahu internetových stránok slúžia triedy HttpWebRequest a HttpWebResponse. Pomocou nich môžete jednoducho stiahnuť súbory z internetu. Najprv je nutné vytvoriť request, čiže žiadosť – to spravíte metódou Create ktorá sa nachádza v triede WebRequest. jej výsledok musíte pretypovať na typ HttpWebRequest. Keď tent omáte môžete metódou GetResponse získať response, čiže odpoveď. Z nej už môžete jednoducho metódou GetResponseStream získať stream z ktorého údaje prečítate ako pri súbore.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://stranka/subor"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); //Čítanie z siete reader.Close();
Čítanie a zápis na FTP
Základné použitie FTP (File Transfer Protocol) je podobné ako pri HTTP. Namiesto HttpWebRequestu však používate FtpWebRequest. Na rozdiel od predošlého však je nutné špecifikovať operáciu ktorú chcete robiť a prihlasovacie údaje. Operáciu špecifikujete cez člena Method, pričom všetky metódy nájdete v statickej triede WebRequestMethods.Ftp. Prihlasovacie údaje nadstavíte cez člena Credentials, ktorému priradíte inštanciu tried NetworkCredential. Následne už postupujete ako pri Http.
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftp://adresa/subor"); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential("meno", "heslo"); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); StreamWriter writer = new StreamWriter(response.GetResponseStream()); //upload súboru writer.Close();
Použitie protokolu TCP – vlastná sieťová komunikácia
Upload a Download súborov je síce užitočný, ale často budete musieť vytvoriť vlastný spôsob komunikácie medzi dvomi počítačmi. Na to budete potrebovať serverovú a klientovskú aplikáciu. Vďaka triedam TcpListener a TcpClient môžete spraviť jednoduchú funkčnú aplikáciu používajúcu protokol TCP.
Pre tvorbu serveru použijete práve triedu TcpListenet, ktorého parameter by mal byť typu IPEndPoint. V ňom špecifikujete na ktorom porte ma počúvať a z ktorých IP Adries. Väčšinou sa ako vstupná adresa používa IPAddress.Any, čo špecifikuje dostupnosť zo všetkých adries. Listener následne naštartujete metódou Start. Pomocou metódy Pending potom zistíte či sa na vás chce niekto napojiť. Na získanie klienta môžete použiť triedy AcceptTcpClient, AcceptSocket poprípade ich asynchrónne varianty.
TcpListener listener = new TcpListener(new IPEndPoint(IPAddress.Any, 80)); listener.Start(); while (!listener.Pending()) ; TcpClient client = listener.AcceptTcpClient(); //komunikácia s klientom client.Close(); listener.Stop();
Pre napojenie na TCP server sa používa trieda TcpClient. Ten nemusí mať žiadne vstupné parametre, pretože server na ktorý sa chcete napojiť je špecifikovaný až v metóde Connect.
TcpClient client = new TcpClient(); client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80)); Stream str = client.GetStream(); //komunikácia client.Close();
Pokročilá komunikácia
Pokročilá komunikácia prebieha pomocou triedy Socket, pri ktorej máte plnú kontrolu nad odosielanými údajmi. Pri tvorbe Socketu špecifikujete jeho typ a ďalšie veci. Ak ho chcete použiť ako server, stačí priradiť adresu RemoteEndPoint a použiť metódu Listen, ak ako klient, použijete metódu Connect.
Týmto sme pokryli základy sieťovej komunikácie a nabudúce si v poslednom diely povieme niečo o zvyšných triedach a metódach, ktoré sa vám môžu zísť.