2010-08-31 70 views

回答

2

最簡單的方法是嘗試連接到已知的IP地址之外。如果在Windows中失敗,connect函數將返回SOCKET_ERROR,並且WSAGetLastError通常會返回WSAEHOSTUNREACH(表示數據包無法發送到主機)。在Linux中,你會得到-1,而errno將是ENETUNREACH。

-1

對於初學者,您可以訂閱ISensIntf以檢查您是否擁有有效的網絡連接。 (讓我知道你是否需要幫助,註冊事件等是很痛苦的)。 之後,你可以使用的API的像IsNetworkAliveInternetGetConnectedStateExInternetCheckConnection檢查連接到互聯網等

如果您使用C#或VB,則先放入一個參考

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

希望這有助於

+0

這個問題想要C++代碼,-1。 – cybermonkey 2014-09-01 20:09:00