News
  • Favorite
  • Facebook
  • Twitter
  • LinkedIn

Microsoft Press Pearson Education (InformIT)
Skip Navigation Links
Pearson Education (InformIT)
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.

NetworkAvailability_02

8.       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.

9.       After adding the two images select one of them as the default image that will be displayed.

10.   Import the System.Net and System.Net.NetworkInformation namespaces using the following statement:

using System.Net;

using System.Net.NetworkInformation;

 

11.   The System.Net namespace provides a simple programming interface for many of the protocols used on networks today.

12.   The System.Net.NetworkInformation namespace provides access to network traffic data, network address information, and notification of address changes for the local computer.

13.   Add the following code to the constructor of the NetworkForm class.

public NetworkForm()

{

    NetworkChange.NetworkAvailabilityChanged +=

        new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);

}

 

a.       This code snippet simply registers an event handler for the NetworkAvailabilityChanged event in the NetworkChange class.

b.      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.

c.       NetworkAvailabilityChanged event occurs when the availability of the network changes.

14.   Add the following code to the NetworkChange_NetworkAvailabilityChanged event handler created in the previous step:

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

    {

    }

}

 

a.       The NetworkAvailabilityEventArgs Class contains one property IsAvailable that we will use to check if the network is available or not.

b.      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".

c.       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".

d.      We then catch the NetworkInformationException and display error message in a MessageBox. This exception is thrown when an error occurs while retrieving network information.

15.   Build and run your application.

16.   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

NetworkAvailability_02

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

 

NetworkAvailability_02

Now you have an application that detects network availability change.

(83) Comments

Blog Message m.michael kors bracelet

Today only and until supplies last, a select assortment of the follow shoes will be available for re. m.michael kors bracelet http://www.ecolineweb.it/work.asp?etichetta=m.michael-kors-bracelet-820264


Blog Message stan smith adidas vulc

8217;s Cameo Collection furthers that motif with a simple floral backdrop. stan smith adidas vulc http://www.kalikart.com/caldo.asp?nome=stan-smith-adidas-vulc-796701


Blog Message http://suba.me/

V99BHD Its hard to find good help I am regularly proclaiming that its difficult to get good help, but here is


Blog Message http://www.iponline.cn/space-uid-2164888.html

Great, thanks for sharing this blog article.Much thanks again. Keep writing.


Blog Message http://www.toledoposicionamientoweb.es

Great, thanks for sharing this post. Really Cool.


Blog Message http://www.xpertise-training.co.uk

I loved your post.Really thank you! Cool.


Blog Message http://www.veoh.com/forum/member.php/574487-nuaioorradpged

Very neat article post.Really thank you! Fantastic.


Blog Message http://fiverr.com/crorkservice

yIPamb I really enjoy the article post.Really looking forward to read more. Much obliged.


Blog Message https://www.youtube.com/watch?v=QEtfxAxZU4U

Thanks a lot for the blog article.Thanks Again. Want more.


Blog Message http://epivatis.gr/e/users.php?mode=profile&uid=31734

Thank you for your article post.Thanks Again. Will read on...


Blog Message http://www.plurk.com/elatedgrandeur554

Very neat blog.Thanks Again. Really Great.


Blog Message http://forum.kinopoisk.ru/member.php?u=699558

Great, thanks for sharing this article post. Awesome.


Blog Message http://ohota.zp.ua/for/tools.php?event=profile&pname=Amannavah907

I appreciate you sharing this blog article.Really thank you! Cool.


Blog Message http://www.3e365.com/home.php?mod=space&uid=1027996

Thanks a lot for the blog.Much thanks again. Awesome.


Blog Message http://www.naspacerek.pl/forum/swobodne-szczekanie/powazne-rozmowy/have-some-fun-digital-landscape

Enjoyed every bit of your article.Really looking forward to read more. Keep writing.

First Previous 1 2 3 4 5 6 Next Last 
Rating
Name
Email
Comment