2
J'ai utilisé le code suivant pour vérifier la connexion Internet, il fonctionne parfaitement sans pare-feu & proxy. comment puis-je vérifier la connexion réseau dans le pare-feu & mode proxy. S'il vous plaît aidez-moicomment vérifier netconnection dans l'environnement de pare-feu et de proxy dans C#
private static ManualResetEvent connectDone = new ManualResetEvent(false);
public static bool IsInternetConnected()
{
int Desc;
string[] sitesList = { "www.google.co.in", "www.microsoft.com", "www.sun.com" };
bool status;
status = InternetGetConnectedState(out Desc, 0);
if (status)
{
try
{
connectDone.Reset();
TcpClient client = new TcpClient();
client.BeginConnect(sitesList[0], 80, new AsyncCallback(ConnectCallback), client);
connectDone.WaitOne(1000, false);
if (client.Connected)
status = true;
else
status = false;
client.Close();
}
catch (System.Exception ex)
{
BringDebug.WriteToLog("BringNet", "IsInternetConnected", ex.Message);
return false;
}
}
else
{
return false;
}
return status;
}
private static void ConnectCallback(IAsyncResult ar)
{
try
{
TcpClient client1 = (TcpClient)ar.AsyncState;
client1.EndConnect(ar); // Complete the connection.
connectDone.Set(); // trigger the connectDone event
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
merci pour votre réponse, mais je pense que c'est une méthode plus lente que la précédente, y at-il une idée pour accélérer –
Quand vous dites que vous * pensez * c'est plus lent - l'avez-vous mesuré? Certes, il va chercher une réponse plutôt que de simplement se connecter, mais je m'attends à ce qu'il soit * adéquatement * rapide. –
(Une option pour l'accélérer en passant, au prix d'une certaine complexité: faire les trois requêtes en parallèle.) –