HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Ping funkció végrehajtása programból


Példaprogram letöltése

10082 bájt

A Windows könyvtárában találunk egy Ping.exe nevű alkalmazást. Ennek segítségével ellenőrizhetjük, hogy egy web hely elérhető-e és ha igen, akkor mennyi időn belül kapunk választ. Ellenőrzéshez vagy a web hely nevét (www.XXX.hu), vagy IP címét kell megadnunk. A Ping parancsot jól használhatjuk parancssorból futtatva. Ekkor megadva a szükséges paramétereket, megkapjuk a választ is kérdéseinkre. Abban az esetben, ha viszont nem mi szeretnénk nézegetni az eredményeket, hanem egy programmal kellene feldolgoztatnunk azt, esetleg rendszeresen kellene használnunk a Ping-et programból tesztelés céljából, akkor már nem elegendő a Ping.exe futtatása. Ebben az esetben programból kell megvalósítanunk azt, amit a Ping.exe tud.
Mellékelt példában készítünk egy Ping nevű osztályt, mely képes a szükséges műveletek elvégzésére programból is.

A Ping osztály használata a következő módon történhet: létrehozunk belőle egy példányt, majd meghívjuk az Execute függvényét. Ennek négy paramétert kell átadunk:
  • Annak a számítógépnek a nevét, vagy IP címét, melynél ellenőrizni akarjuk a kapcsolatot
  • Hány bájtos adattal történjen a teszt
  • Hányszor ismétlődjön a teszt egymás után
  • Mennyi időt várunk ezredmásodpercben egy-egy válaszra, mielőtt megszakítjuk a várakozást
Az Execute függvény futása közben rendszeresen aktiválásra kerül a PingChange esemény, így célszerű ehhez mindenesetben egy eseménykezelőt rendelni. Az esemény tájékoztat, hogy hol tart a teszt folyamata, illetve az esetleges hibaüzenetekről is így kaphatunk értesítést.
Miután az Execute függvény befejezte a futását az alábbi property-ken keresztül érhetjük el a teszt eredményének adatait:
  • PacketSent - elküldött adatcsomagok száma
  • PacketReceived - visszaérkezett adatcsomagok száma
  • PacketLost - elveszett adatcsomagok száma
  • PacketLostPercent - elveszett adatcsomagok százaléka az elküldött csomagokhoz képest
  • Minimum - a legrövidebb válaszidő
  • Maximum - a leghosszabb válaszidő
  • Average - átlagos válaszidő
  • IP - az elért számítógép IP címe
A Ping funkció megvalósítása az Execute függvényben történik. Itt fel kell építenünk egy TCP/IP kapcsolatot gépünk és a tesztelni kívánt gép között, majd az ICMP protokollnak megfelelő kommunikációt kell folytatni, mely alapján a szükséges teszt értékek meghatározhatók. Az ICMP protokoll használatának részleteiről a Windows Software Online hetilap 2. évfolyam 22. számában megjelent „Internet Control Message Protocol (ICMP)” című cikkben olvashat.
    private void button1_Click(object sender, System.EventArgs e)
    {
      ...
      Ping p = new Ping();
      p.PingChange+=new PingChangeEvent(PingChange);
      p.Excecute(textBox1.Text, 32, 4, 5000);    
      listBox1.Items.Add("---------");
      listBox1.Items.Add("Packet sent: " + p.PacketSent.ToString());
      listBox1.Items.Add("Packet received: " + p.PacketReceived.ToString());
      ...
    }
    private void PingChange(object sender, string message)
    {
      listBox1.SelectedIndex=listBox1.Items.Add(message);      
      listBox1.Update();
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 403. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |