Dnes jsem si připravil pár tipů týkajících se základních úkonů týkajících se počítačové sítě.
Ping - ověření dostupnosti a rychlosti odpovědi zařízení v síti
Použijeme třídu System.Net.NetworkInformation.Ping. Podporuje nastavení vypršení timeoutu, TTL i asynchronní volání. Příklad pro jednoduchý test IP adresy 10.0.0.138:
Dim ping As New System.Net.NetworkInformation.Ping()
' zavolání požadavku (timeout nastaven na 1,5 vteřiny)
Dim pingReply = ping.Send("10.0.0.138", 1500)
' výpis info o výsledku
Console.WriteLine("Adresa: {0}", pingReply.Address)
Console.WriteLine("Status: {0}", pingReply.Status.ToString())
Console.WriteLine("Cas: {0}ms", pingReply.RoundtripTime)
Console.ReadKey()
Stažení souboru pomocí HTTP
Stažení souboru pomocí HTTP protokolu lze snadno provést zapomocí třídy System.Net.WebClient. Opět i zde máme podporu stahování asynchronním způsbem. Příklad, který stáhne a otevře obrázek z internetu:
' cílové jméno souboru v počítači
Dim fileName As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "colosseum.jpg")
' stažení souboru
Dim webClient As New System.Net.WebClient()
Console.WriteLine("Stahuji soubor...")
Try
webClient.DownloadFile("http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Colosseum_in_Rome-April_2007-1-_copie_2B.jpg/800px-Colosseum_in_Rome-April_2007-1-_copie_2B.jpg", fileName)
Console.WriteLine("Staženo.")
Catch
Console.WriteLine("Chyba!")
Console.ReadKey()
Return
End Try
' zobrazení souboru
System.Diagnostics.Process.Start(fileName)
Console.ReadKey()
Občas potřebujeme odeslat s požadavkem i autorizační údaje. To se dělá přiřazením třídy implementující ICredentials do WebClient.Credentials. Ukážeme si jak předat základní ověření (jméno a heslo) a ověření aktuálně přihlášeného uživatele ve Windows:
Dim webClient As New System.Net.WebClient()
' předání jména a hesla
webClient.Credentials = New System.Net.NetworkCredential("jmeno", "heslo")
webClient.DownloadFile("http://server/zabezpecenySoubor.jpg", fileName)
' předání aktuálně přihlášeného uživatele
webClient.Credentials = System.Net.CredentialCache.DefaultCredentials
webClient.DownloadFile("http://server/zabezpecenySoubor.jpg", fileName)
Předávání ověření je dobré znát, je možné ho použít při volání webových služeb, přistupování k síťovým prostředkům atp.