This article shows how to use the Ping and PingReply
classes in a C# Forms application.
Unlike most ping utilities, this one is intended to
notify us when a ping is successful, but this sample can easily be modified
to notify us when a ping fails. This sample also shows use of a timer
control in a form and of toggling a ToolStripMenuItem.
Most ping utilities are intended to notify us when
something has stopped working. I
wrote this utility because I needed something to notify me when my host has
started working. This sample can
certainly be used in a utility that does the reverse; that is, does
something when a host stops responding.
In the sample program, there is a TextBox for a host
and a TextBox for an interval of time in seconds. There are three output
TextBoxes; one for the time of the last ping, one for the status of the ping
and a third for an error message. The one for the time of the last ping is
more for diagnostic purposes and is not really useful otherwise.
Ping and PingReply Classes
The Ping class can be
very easy to use. The following is a simplified version of what the sample
const int Timeout = 120;
String Data = "";
byte Buffer = Encoding.ASCII.GetBytes(Data);
Ping Sender = new Ping();
PingReply Reply = Sender.Send(Host, Timeout, Buffer);
The PingReply.Status field will be either
IPStatus.Success or one of many values indicating a problem. The
PingReply.RoundtripTime Property is another useful item to show.