Click here to Skip to main content
13,053,399 members (61,727 online)
Click here to Skip to main content
Add your own
alternative version


49 bookmarked
Posted 25 May 2005

Simple ICMP Service Monitor

, 6 Jul 2005
Rate this:
Please Sign up or sign in to vote.
An example of a moderately useful network utility.

Screen shot


This simple lightweight application provides a solution for monitoring access to potentially critical network services.


Working as a Network Administrator in an environment where the number of servers managed is continually growing, I had been looking for a simple utility like this one. I began the project in February and during my research came across FreePing available here. I reworked the UI and put together the source to "clone" it since I had already put in a great deal of effort at that point, and I was still interested in actually seeing how to write the code. FreePing is a nice utility and is available from tools4ever as a free download.

The ICMP class used in this demonstration was graciously provided as open source here. The timer was adapted from Mike Gold's EGG Timer demo which is available here.

How it Works

Once the Start button is pressed, the program reads the ini file and issues a ping for all of the hosts listed in the file. A separate thread is created for each host and it is passed the list view row as a parameter to allow it to control the information for that host's row. Threads are used to keep the user interface from waiting until the scan is completed to regain control.

At the completion of the scan initiation, a new thread is created which calls the Elapsed Time timer. This routine provides the information for the countdown clock located in the upper right portion of the main form. When the timer reaches 0, it is stopped and a call to the Monitors initialization routine is placed. The same routine is accessed by the Start button. This creates the Elapsed time loop needed to repeat the scans on regular intervals.

Points of Interest

This program was a learning experience and is the first application development I have undertaken. (I keep my rookie status.) This program demonstrates techniques for updating listview information, simple ini file creation without using interop services, a demonstration of how to load a CHM help file, and techniques for creating new execution threads.

It was for me a great learning project, which produced an application that I wanted, hopefully it will provide some useful purpose for others as well. The code is documented and should be easy to read but, I'll let you judge.

There is room for improvement, of course and I will be adding some features to the final revision.


June 2005


  • Added a toolbar to allow for quick access to the application's functions.
  • Added a status bar and a progress bar to communicate with the user.


  1. Re-wrote a large portion of the code, which allowed the correction of minor logic flaws.
  2. Corrected an error in packet reception which gave false results.
  3. Added new features to allow the user to adjust some of the program's parameters.
  4. Help file: updated the help file to reflect the changes.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Canada Canada
No Biography provided

You may also be interested in...


Comments and Discussions

GeneralMy vote of 3 Pin
Vilmair10-May-14 14:25
memberVilmair10-May-14 14:25 
Generali get a cross thread operation not allowed Pin
Cool Smith9-Jun-11 22:28
memberCool Smith9-Jun-11 22:28 
Generalits throwing an error: Pin
Tejpal Garhwal11-Sep-06 7:39
memberTejpal Garhwal11-Sep-06 7:39 
QuestionIt does not work for https that need certificate Pin
Tejpal Garhwal11-Aug-06 6:41
memberTejpal Garhwal11-Aug-06 6:41 
AnswerRe: It does not work for https that need certificate [modified] Pin
Tejpal Garhwal11-Aug-06 6:44
memberTejpal Garhwal11-Aug-06 6:44 
GeneralRe: It does not work for https that need certificate Pin
aferende11-Aug-06 7:19
memberaferende11-Aug-06 7:19 
GeneralRe: It does not work for https that need certificate Pin
Tejpal Garhwal11-Aug-06 8:00
memberTejpal Garhwal11-Aug-06 8:00 
GeneralRe: It does not work for https that need certificate Pin
DJ BlackEagle30-Oct-06 13:04
memberDJ BlackEagle30-Oct-06 13:04 
Generalmain form couldnt be loaded in VS2005 help!! Pin
lizecn10-Aug-06 7:34
memberlizecn10-Aug-06 7:34 
GeneralI have error Pin
majedsale711-Feb-06 1:38
membermajedsale711-Feb-06 1:38 
QuestionIs possible to have a LOG file ? Pin
KIMSENG5-Oct-05 5:38
memberKIMSENG5-Oct-05 5:38 
AnswerRe: Is possible to have a LOG file ? Pin
bill200611-Oct-05 7:29
memberbill200611-Oct-05 7:29 
GeneralRe: Is possible to have a LOG file ? Pin
KIMSENG12-Oct-05 21:03
memberKIMSENG12-Oct-05 21:03 
GeneralDelete, Enable/Disable Host Pin
Arbulo8-Jun-05 4:52
memberArbulo8-Jun-05 4:52 
GeneralRe: Delete, Enable/Disable Host Pin
Bil20068-Jun-05 4:57
sussBil20068-Jun-05 4:57 
GeneralNice....But what am I doing wrong Pin
GeertD6-Jun-05 20:48
memberGeertD6-Jun-05 20:48 
GeneralRe: Nice....But what am I doing wrong Pin
Anonymous2-Jul-05 6:20
sussAnonymous2-Jul-05 6:20 
GeneralRe: Nice....But what am I doing wrong Pin
GeertD12-Jul-05 21:25
memberGeertD12-Jul-05 21:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.170713.1 | Last Updated 7 Jul 2005
Article Copyright 2005 by bill2006
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid