[SRC][C#]: PingWatcher
От: Roman Pushkin Россия  
Дата: 06.04.06 08:31
Оценка:
Для .NET Framework 2.0

http://rsdn.ru/File/30082/PingWatcher.zip

На работе потребовалось узнать, насколько стабильный у нас интернет. Написал тулзу с расчетом на будущее. Есть модуль, который добавляет в базу данных сведения об отсутствии связи. Пока пингуется один хост, но архитектура позволяет легко добавить несколько хостов. Пинг каждые 10 секунд (устанавливается).

Все выводится на консоль, планирую сделать вскоре GUI версию.
Пример вывода данных:

Last offline: 00:00:09.7653732
Total offline time since 06.04.2006 12:22:34: 00:00:09
Uptime: 51,66%


По поводу кода. Использовать просто. Сначала создаем что мы будем пинговать:


WatcherPoint point = new WatcherPoint("www.blabla.com", 1);


1 — идентификатор, который может потребоваться для БД.

Дальше создаем объект PingStatistics:

PingStatistics stat = new PingStatistics(point);
// обработчик событий, который будет говорить о том, что точка снова в онлайне
stat.OnPointOnline += new PingStatisticsEventHandler(stat_OnPointOnline);

// создаем пингер, который будет пинговать хост
PointPinger pinger = new PointPinger(point);
// событие, которое говорит об успешном или о неуспешном результате
pinger.OnPingResult += new PingerEventHandler(pinger_OnPingResult);
pinger.DoBlockedPing();


И, наконец, что происходит когда точка снова появляется в онлайне:
        static void stat_OnPointOnline(object sender, PingStatisticsArgs e)
        {
            OfflineTime += e.IdleTime; // IdleTime - время простоя
            showStats(e.IdleTime);
        }


Пишите: roman.pushkin наша_маша_громко_лает gmail com
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.