Welcome to Ultra Developers.

the company that developes your success

Read Blog


How to: Detect Network Connectivity Availability Change Status using C#

How to: Detect Network Connectivity Availability Change Status using C#

Sometimes your application connects to a web service or web sites or querying databases on other machines on the network. And sometimes your application does not get results of operations you performed as your machine disconnects and connects again to the network. You need your application to detect network availability change. Fortunately the System.Net.NetworkInformation contains the NetworkChange that will allow us to detect network availability change.

Using the Code:

To create an application that detects network availability change follow the following steps:

  1. Create a new windows application using Visual Studio 2005/2008/2010.
  2. Rename Form1 to NetworkForm.
  3. Add a ToolStrip control to the NetworkForm and rename it to NetworkToolStrip.
  4. Add a ToolStripLabel to the NetworkToolStrip and rename it to NetworkAvailabilityToolStripLabel and set its Text property to Network Availability.
  5. Right click the NetworkAvailabilityToolStripLabel and select Alignment and click Right. This will align the NetworkAvailabilityToolStripLabel to the Right side.
  6. Right click the NetworkAvailabilityToolStripLabel and select DisplayStyle and select ImageAndText. This will display the image beside the text.
  7. Right click the NetworkAvailabilityToolStripLabel and select Set Image. This will Display the Select Resource Dialog Box.

Select Resource

  1. Click on Project resource file Radio Button and Click on Import button and navigate to two Images that will be used to indicate network availability.
  2. After adding the two images select one of them as the default image that will be displayed.
  3. Import the System.Net and System.Net.NetworkInformation namespaces using the following statement:
using System.Net;
using System.Net.NetworkInformation;
  1. The System.Net namespace provides a simple programming interface for many of the protocols used on networks today.
  2. The System.Net.NetworkInformation namespace provides access to network traffic data, network address information, and notification of address changes for the local computer.
  3. Add the following code to the constructor of the NetworkForm class.
    • This code snippet simply registers an event handler for the NetworkAvailabilityChanged event in the NetworkChange class.
    • NetworkChange Class allows applications to receive notification when the Internet Protocol (IP) addresses of a network interface, also called a network card or adapter, changes.
    • NetworkAvailabilityChanged event occurs when the availability of the network changes.
public NetworkForm()
{
    NetworkChange.NetworkAvailabilityChanged +=
        new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
}
  1. Add the following code to the NetworkChange_NetworkAvailabilityChanged event handler created in the previous step:
    • The NetworkAvailabilityEventArgs Class contains one property IsAvailable that we will use to check if the network is available or not.
    • We check the IsAvailable property and if true we set the image of the NetworkAvailabilityToolStripLabel to one of the two images we added earlier and set the tool tip for the label to the following text "Network is Available".
    • If the IsAvailable property is false, we set the image of the NetworkAvailabilityToolStripLabel to the other image and set the tool tip for the label to the following text "Network is not Available".
    • We then catch the NetworkInformationException and display error message in a MessageBox. This exception is thrown when an error occurs while retrieving network information.
private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
    try
    {
        if (e.IsAvailable)
        {
            NetworkAvailabilityToolStripLabel.Image = Properties.Resources._023;
            NetworkAvailabilityToolStripLabel.ToolTipText = "Network is Available";
        }
        else
        {
            NetworkAvailabilityToolStripLabel.Image = Properties.Resources._013;
            NetworkAvailabilityToolStripLabel.ToolTipText = "Network is not Available";
        }
    }
    catch (NetworkInformationException ex)
    {
        MessageBox.Show(ex.Message, ex.GetType().ToString(),
            MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, ex.GetType().ToString(),
            MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    finally
    {
    }
}
  1. Build and run your application.
  2. If your machine is connected to a network you will see the NetworkAvailabilityToolStripLabel image and tooltip indicates you are connected as shown in the following image

Network is available

  1. Try to disconnect your machine from the network the NetworkAvailabilityToolStripLabel image and tooltip will be changed as shown in the following image.

Network is unavailable

Now you have an application that detects network availability change.

Similar Posts