2010-08-31 11 views

Respuesta

2

La forma más fácil es tratar de conectarse a una dirección IP conocida fuera. Si falla en Windows, la función de conexión devolverá SOCKET_ERROR, y WSAGetLastError generalmente devolverá WSAEHOSTUNREACH (lo que significa que el paquete no pudo ser enviado al host). En Linux, obtendrás un -1, y errno será ENETUNREACH.

-1

Para empezar, puede suscribirse al ISensIntf para verificar si tiene una conexión de red válida. (Avíseme si necesita ayuda para esto. Es doloroso registrarse para los eventos, etc.). Después de eso, puede utilizar la API como IsNetworkAlive, InternetGetConnectedStateEx o la InternetCheckConnection para comprobar la conectividad a Internet, etc.

Si su uso de C# o VB, a continuación, primero agregar una referencia a

Microsoft.VisualBasic.Code. 
Microsoft.VisualBasic.Devices.Network network = new Microsoft.VisualBasic.Devices.Network(); 
       network.NetworkAvailabilityChanged += new Microsoft.VisualBasic.Devices.NetworkAvailableEventHandler(network_NetworkAvailabilityChanged); 

... 

private static void network_NetworkAvailabilityChanged(object sender, Microsoft.VisualBasic.Devices.NetworkAvailableEventArgs e) 
     { 
      if (e.IsNetworkAvailable) 
      { 
       //network is connected.. do something.. 
      } 
      else 
      { 
       //network isnt connected.. do something else. 
      } 

Espero que esto ayude

+0

Esta pregunta quería código C++, -1. – cybermonkey

Cuestiones relacionadas