MuZZY
Mon Sep 06 22:30:49 CDT 2004
Konrad wrote:
> I found this method and it is quick
>
> //Creating the extern function...
>
> [DllImport("wininet.dll")]
>
> private extern static bool InternetGetConnectedState(
>
> out int Description, int ReservedValue ) ;
>
>
>
> public static bool IsConnectedToInternet( )
>
> {
>
> int Desc ;
>
> return InternetGetConnectedState( out Desc, 0 ) ;
>
> }
>
>
>
> and previous method
>
> public static bool IsInternetConnected(string url)
>
> {
>
> bool FoundUrl = true;
>
> try
>
> {
>
> WebRequest req;
>
> WebResponse result;
>
> Stream ReceiveStream;
>
> Encoding encode;
>
> StreamReader sr;
>
> req = WebRequest.Create(url);
>
> req.Timeout = 5000;
>
> result = req.GetResponse();
>
> ReceiveStream = result.GetResponseStream();
>
> encode = System.Text.Encoding.GetEncoding("utf-8");
>
> sr = new StreamReader(ReceiveStream, encode);
>
> }
>
> catch(System.Exception e)
>
> {
>
> FoundUrl = false;
>
> }
>
> return FoundUrl;
>
>
> }
>
> Thanks
>
> Konrad
>
> "Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
> news:2q2sv5Fqlvg4U1@uni-berlin.de...
>
>>* "Konrad" <konrad007@poczta.onet.pl> scripsit:
>>
>>>I'am checking in separate thread does the connection with
>>>internet is estabilished. But program freezes
>>>for 2-3 secs. How to do that user
>>>doesn't feel this checking?
>>
>>How do you check if the connection is established?
>>
>>--
>> M S Herfried K. Wagner
>>M V P <URL:
http://dotnet.mvps.org/>
>> V B <URL:
http://dotnet.mvps.org/dotnet/faqs/>
>
Hi Konrad,
Well, i've seen in a few articles that using any windows api functions
to test internet connection isn't reliable anyway - at the most it will
say that you are connected, but it can't check either it's just a LAN
connection, or internet.
What i would do is try to establish a conection with a well nown web
site, say yahoo or google using System.Net.HttpWebRequest class.
I am not sure if it's a synchronous or asynchronous socket connection,
but anyway you can launch it in a separate thread.
I remember myself doing that back in Delphi couple years ago, and it
worked fine!
Andrey