Comment tester si la connexion Internet est active ?
4 réponses
Bull
Bonjour,
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés sur
des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher
l'infos dans les fameux fichiers xml), je teste si la connexion est active.
Pour l'instant, je procède en faisant un ping de google comme cela :
Try
Dim hwebrequest As System.Net.WebRequest =
System.Net.WebRequest.Create(http://www.google.fr)
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
connected = True
Catch ex As Exception
connected = False
StatusBar1.Text = "Connection failure, please verify that your Internet
connection is open"
End Try
Le problème, c'est qu'il semble que google mette de plus en plus de temps à
répondre au ping ce qui paralyse complètement mon application pendant de
longues secondes.
Quelqu'un connait-il donc un autre moyen de tester si une connexion Internet
est active ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pyroa
le ping est une bonne manière de tster la conenction sinon tu peux tenter de télécharger une page web et si une exceptio nest déclenché tu n'est pas connecté ... "Bull" a écrit dans le message de news:
Bonjour,
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés
sur
des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher l'infos dans les fameux fichiers xml), je teste si la connexion est
active.
Pour l'instant, je procède en faisant un ping de google comme cela :
Try
Dim hwebrequest As System.Net.WebRequest > System.Net.WebRequest.Create(http://www.google.fr)
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
connected = True
Catch ex As Exception
connected = False
StatusBar1.Text = "Connection failure, please verify that your Internet connection is open"
End Try
Le problème, c'est qu'il semble que google mette de plus en plus de temps
à
répondre au ping ce qui paralyse complètement mon application pendant de longues secondes.
Quelqu'un connait-il donc un autre moyen de tester si une connexion
Internet
est active ?
Mille mercis d'avance, Bull
le ping est une bonne manière de tster la conenction sinon tu peux tenter de
télécharger une page web et si une exceptio nest déclenché tu n'est pas
connecté ...
"Bull" <bull219@wanadoo.fr> a écrit dans le message de
news:OMpCGQOcEHA.2844@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés
sur
des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher
l'infos dans les fameux fichiers xml), je teste si la connexion est
active.
Pour l'instant, je procède en faisant un ping de google comme cela :
Try
Dim hwebrequest As System.Net.WebRequest > System.Net.WebRequest.Create(http://www.google.fr)
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
connected = True
Catch ex As Exception
connected = False
StatusBar1.Text = "Connection failure, please verify that your Internet
connection is open"
End Try
Le problème, c'est qu'il semble que google mette de plus en plus de temps
à
répondre au ping ce qui paralyse complètement mon application pendant de
longues secondes.
Quelqu'un connait-il donc un autre moyen de tester si une connexion
le ping est une bonne manière de tster la conenction sinon tu peux tenter de télécharger une page web et si une exceptio nest déclenché tu n'est pas connecté ... "Bull" a écrit dans le message de news:
Bonjour,
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés
sur
des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher l'infos dans les fameux fichiers xml), je teste si la connexion est
active.
Pour l'instant, je procède en faisant un ping de google comme cela :
Try
Dim hwebrequest As System.Net.WebRequest > System.Net.WebRequest.Create(http://www.google.fr)
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
connected = True
Catch ex As Exception
connected = False
StatusBar1.Text = "Connection failure, please verify that your Internet connection is open"
End Try
Le problème, c'est qu'il semble que google mette de plus en plus de temps
à
répondre au ping ce qui paralyse complètement mon application pendant de longues secondes.
Quelqu'un connait-il donc un autre moyen de tester si une connexion
Internet
est active ?
Mille mercis d'avance, Bull
Zoury
Salut Bull! :O)
essai ce code : '*** ' CNetworkManagement.vb Imports System Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _ Private Shared Function InternetGetConnectedState _ ( _ ByRef dwFlags As Int32, _ ByVal dwReserved As Int32 _ ) As Boolean ' End Function
Public Shared Function IsOnline() As Boolean Return InternetGetConnectedState(0, 0) End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32 Dim sEnumNames() As String Dim arEnumValues As Array Dim t As Type Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then t = InternetConnectionMode.Modem.GetType() sEnumNames = [Enum].GetNames(t) arEnumValues = [Enum].GetValues(t) For i = 0 To sEnumNames.Length - 1 If (iFlag And CType(arEnumValues.GetValue(i), String)) Then ' on a trouvé une connection Return [Enum].Parse(t, sEnumNames(i)) End If Next i End If
End Class '*** '*** ' EInternetConnectionMode.vb Public Enum InternetConnectionMode As Integer None = &H0 Modem = &H1 ' INTERNET_CONNECTION_MODEM Lan = &H2 ' INTERNET_CONNECTION_LAN Proxy = &H3 ' INTERNET_CONNECTION_PROXY End Enum '***
Exemple : '*** Module Module1
Sub Main() ' test la connection Console.WriteLine( _ "NetworkManagement.IsOnline() : " & _ NetworkManagement.IsOnline().ToString()) ' test le type... Console.WriteLine( _ "NetworkManagement.GetConnectionMode() : " & _ NetworkManagement.GetConnectionMode().ToString()) Console.WriteLine() Console.WriteLine("Appuyer sur Retour pour quitter ...") Console.ReadLine() End Sub
essai ce code :
'***
' CNetworkManagement.vb
Imports System
Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _
Private Shared Function InternetGetConnectedState _
( _
ByRef dwFlags As Int32, _
ByVal dwReserved As Int32 _
) As Boolean
'
End Function
Public Shared Function IsOnline() As Boolean
Return InternetGetConnectedState(0, 0)
End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32
Dim sEnumNames() As String
Dim arEnumValues As Array
Dim t As Type
Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then
t = InternetConnectionMode.Modem.GetType()
sEnumNames = [Enum].GetNames(t)
arEnumValues = [Enum].GetValues(t)
For i = 0 To sEnumNames.Length - 1
If (iFlag And CType(arEnumValues.GetValue(i), String)) Then
' on a trouvé une connection
Return [Enum].Parse(t, sEnumNames(i))
End If
Next i
End If
End Class
'***
'***
' EInternetConnectionMode.vb
Public Enum InternetConnectionMode As Integer
None = &H0
Modem = &H1 ' INTERNET_CONNECTION_MODEM
Lan = &H2 ' INTERNET_CONNECTION_LAN
Proxy = &H3 ' INTERNET_CONNECTION_PROXY
End Enum
'***
Exemple :
'***
Module Module1
Sub Main()
' test la connection
Console.WriteLine( _
"NetworkManagement.IsOnline() : " & _
NetworkManagement.IsOnline().ToString())
' test le type...
Console.WriteLine( _
"NetworkManagement.GetConnectionMode() : " & _
NetworkManagement.GetConnectionMode().ToString())
Console.WriteLine()
Console.WriteLine("Appuyer sur Retour pour quitter ...")
Console.ReadLine()
End Sub
essai ce code : '*** ' CNetworkManagement.vb Imports System Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _ Private Shared Function InternetGetConnectedState _ ( _ ByRef dwFlags As Int32, _ ByVal dwReserved As Int32 _ ) As Boolean ' End Function
Public Shared Function IsOnline() As Boolean Return InternetGetConnectedState(0, 0) End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32 Dim sEnumNames() As String Dim arEnumValues As Array Dim t As Type Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then t = InternetConnectionMode.Modem.GetType() sEnumNames = [Enum].GetNames(t) arEnumValues = [Enum].GetValues(t) For i = 0 To sEnumNames.Length - 1 If (iFlag And CType(arEnumValues.GetValue(i), String)) Then ' on a trouvé une connection Return [Enum].Parse(t, sEnumNames(i)) End If Next i End If
End Class '*** '*** ' EInternetConnectionMode.vb Public Enum InternetConnectionMode As Integer None = &H0 Modem = &H1 ' INTERNET_CONNECTION_MODEM Lan = &H2 ' INTERNET_CONNECTION_LAN Proxy = &H3 ' INTERNET_CONNECTION_PROXY End Enum '***
Exemple : '*** Module Module1
Sub Main() ' test la connection Console.WriteLine( _ "NetworkManagement.IsOnline() : " & _ NetworkManagement.IsOnline().ToString()) ' test le type... Console.WriteLine( _ "NetworkManagement.GetConnectionMode() : " & _ NetworkManagement.GetConnectionMode().ToString()) Console.WriteLine() Console.WriteLine("Appuyer sur Retour pour quitter ...") Console.ReadLine() End Sub
Ca a l'air de marcher impec à première vue. Coollllllllllllll !
Merci bcp !!!
@+ Bull
"Zoury" a écrit dans le message de news:
Salut Bull! :O)
essai ce code : '*** ' CNetworkManagement.vb Imports System Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _ Private Shared Function InternetGetConnectedState _ ( _ ByRef dwFlags As Int32, _ ByVal dwReserved As Int32 _ ) As Boolean ' End Function
Public Shared Function IsOnline() As Boolean Return InternetGetConnectedState(0, 0) End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32 Dim sEnumNames() As String Dim arEnumValues As Array Dim t As Type Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then t = InternetConnectionMode.Modem.GetType() sEnumNames = [Enum].GetNames(t) arEnumValues = [Enum].GetValues(t) For i = 0 To sEnumNames.Length - 1 If (iFlag And CType(arEnumValues.GetValue(i), String))
Then
' on a trouvé une connection Return [Enum].Parse(t, sEnumNames(i)) End If Next i End If
End Class '*** '*** ' EInternetConnectionMode.vb Public Enum InternetConnectionMode As Integer None = &H0 Modem = &H1 ' INTERNET_CONNECTION_MODEM Lan = &H2 ' INTERNET_CONNECTION_LAN Proxy = &H3 ' INTERNET_CONNECTION_PROXY End Enum '***
Exemple : '*** Module Module1
Sub Main() ' test la connection Console.WriteLine( _ "NetworkManagement.IsOnline() : " & _ NetworkManagement.IsOnline().ToString()) ' test le type... Console.WriteLine( _ "NetworkManagement.GetConnectionMode() : " & _ NetworkManagement.GetConnectionMode().ToString()) Console.WriteLine() Console.WriteLine("Appuyer sur Retour pour quitter ...") Console.ReadLine() End Sub
Ca a l'air de marcher impec à première vue. Coollllllllllllll !
Merci bcp !!!
@+
Bull
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:ef0MkKPcEHA.3716@TK2MSFTNGP11.phx.gbl...
Salut Bull! :O)
essai ce code :
'***
' CNetworkManagement.vb
Imports System
Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _
Private Shared Function InternetGetConnectedState _
( _
ByRef dwFlags As Int32, _
ByVal dwReserved As Int32 _
) As Boolean
'
End Function
Public Shared Function IsOnline() As Boolean
Return InternetGetConnectedState(0, 0)
End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32
Dim sEnumNames() As String
Dim arEnumValues As Array
Dim t As Type
Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then
t = InternetConnectionMode.Modem.GetType()
sEnumNames = [Enum].GetNames(t)
arEnumValues = [Enum].GetValues(t)
For i = 0 To sEnumNames.Length - 1
If (iFlag And CType(arEnumValues.GetValue(i), String))
Then
' on a trouvé une connection
Return [Enum].Parse(t, sEnumNames(i))
End If
Next i
End If
End Class
'***
'***
' EInternetConnectionMode.vb
Public Enum InternetConnectionMode As Integer
None = &H0
Modem = &H1 ' INTERNET_CONNECTION_MODEM
Lan = &H2 ' INTERNET_CONNECTION_LAN
Proxy = &H3 ' INTERNET_CONNECTION_PROXY
End Enum
'***
Exemple :
'***
Module Module1
Sub Main()
' test la connection
Console.WriteLine( _
"NetworkManagement.IsOnline() : " & _
NetworkManagement.IsOnline().ToString())
' test le type...
Console.WriteLine( _
"NetworkManagement.GetConnectionMode() : " & _
NetworkManagement.GetConnectionMode().ToString())
Console.WriteLine()
Console.WriteLine("Appuyer sur Retour pour quitter ...")
Console.ReadLine()
End Sub
Ca a l'air de marcher impec à première vue. Coollllllllllllll !
Merci bcp !!!
@+ Bull
"Zoury" a écrit dans le message de news:
Salut Bull! :O)
essai ce code : '*** ' CNetworkManagement.vb Imports System Imports System.Runtime.InteropServices
Public Class NetworkManagement
<DllImport("wininet", SetLastError:=True)> _ Private Shared Function InternetGetConnectedState _ ( _ ByRef dwFlags As Int32, _ ByVal dwReserved As Int32 _ ) As Boolean ' End Function
Public Shared Function IsOnline() As Boolean Return InternetGetConnectedState(0, 0) End Function
Public Shared Function GetConnectionMode() As InternetConnectionMode
Dim iFlag As Int32 Dim sEnumNames() As String Dim arEnumValues As Array Dim t As Type Dim i As Int32
If (InternetGetConnectedState(iFlag, 0)) Then t = InternetConnectionMode.Modem.GetType() sEnumNames = [Enum].GetNames(t) arEnumValues = [Enum].GetValues(t) For i = 0 To sEnumNames.Length - 1 If (iFlag And CType(arEnumValues.GetValue(i), String))
Then
' on a trouvé une connection Return [Enum].Parse(t, sEnumNames(i)) End If Next i End If
End Class '*** '*** ' EInternetConnectionMode.vb Public Enum InternetConnectionMode As Integer None = &H0 Modem = &H1 ' INTERNET_CONNECTION_MODEM Lan = &H2 ' INTERNET_CONNECTION_LAN Proxy = &H3 ' INTERNET_CONNECTION_PROXY End Enum '***
Exemple : '*** Module Module1
Sub Main() ' test la connection Console.WriteLine( _ "NetworkManagement.IsOnline() : " & _ NetworkManagement.IsOnline().ToString()) ' test le type... Console.WriteLine( _ "NetworkManagement.GetConnectionMode() : " & _ NetworkManagement.GetConnectionMode().ToString()) Console.WriteLine() Console.WriteLine("Appuyer sur Retour pour quitter ...") Console.ReadLine() End Sub
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés sur des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher l'infos dans les fameux fichiers xml), je teste si la connexion est active. Pour l'instant, je procède en faisant un ping de google comme cela :
Pourquoi ne pas simplement essayer de se connecter et puis si ça marche pas tu catches l'erreur ?
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés sur
des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher
l'infos dans les fameux fichiers xml), je teste si la connexion est active.
Pour l'instant, je procède en faisant un ping de google comme cela :
Pourquoi ne pas simplement essayer de se connecter et puis si ça marche pas tu
catches l'erreur ?
J'ai une appli qui va chercher des infos dans des fichiers xml hébergés sur des serveur web (en gros, un lecteur rss si ça vous dit quelque chose).
Avant chaque mise à jour de mes flux rss (donc avant d'aller chercher l'infos dans les fameux fichiers xml), je teste si la connexion est active. Pour l'instant, je procède en faisant un ping de google comme cela :
Pourquoi ne pas simplement essayer de se connecter et puis si ça marche pas tu catches l'erreur ?