Rod*_*des 14 c# windows networking
我有这个方法:
public static void testConnection()
{
if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
{
System.Windows.MessageBox.Show("This computer is connected to the internet");
}
else
{
System.Windows.MessageBox.Show("This computer is not connected to the internet");
}
}
Run Code Online (Sandbox Code Playgroud)
我想它会告诉我连接是否可用但它总是返回true(并打印第一条消息),即使我确定没有连接.我做错了什么?
PS:我还在学习C#.
ven*_*ra8 16
我认为这种方法更合适:
public static bool getIsInternetAccessAvailable()
{
switch(NetworkInformation.GetInternetConnectionProfile().GetNetworkConnectivityLevel())
{
case NetworkConnectivityLevel.InternetAccess:
return true;
default:
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
Cla*_*wer 12
如果我错了,请纠正我,但据我所知,您正在使用的方法是检查网络连接,而不一定是互联网连接.我会假设如果你在任何类型的网络上,无论互联网是否可用,这都将返回真实状态?看到这个.
我注意到检查互联网连接的一种方法如下:
private bool IsInternetAvailable()
{
try
{
Dns.GetHostEntry("www.google.com"); //using System.Net;
return true;
} catch (SocketException ex) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码可以在以下帖子中找到(在VB.Net中通过阅读Joacim Andersson [MVP]的评论).
注意:最新的编辑是由AceInfinity建议的,但在社区审查中被拒绝.我的名声太低,无法覆盖这一点,所以我自己做了改变.
| 归档时间: |
|
| 查看次数: |
9935 次 |
| 最近记录: |