C# 尽管internet连接可用,但此代码段是否返回false
即使internet连接可用,此代码段是否仍会返回falseC# 尽管internet连接可用,但此代码段是否返回false,c#,system.net,C#,System.net,即使internet连接可用,此代码段是否仍会返回false private bool ConnectionIsOk() { try { using (var client = new WebClient()) using (var stream = client.OpenRead("http://www.google.com")) { retur
private bool ConnectionIsOk()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
我在我的程序中使用的这部分代码,当我的朋友启动我的程序时,他说这个函数返回false,尽管可以连接互联网!!
这是真的吗?什么时候?当然可以。如果你因任何原因无法访问谷歌,它将返回false。如果您的DNS关闭(但不是您的internet连接),它将返回false。引用单个主机名并不理想。当然可以。如果你因任何原因无法访问谷歌,它将返回false。如果您的DNS关闭(但不是您的internet连接),它将返回false。引用单个主机名并不理想。如果internet连接可用,但:
false
因此,您的问题的答案是“是”。如果internet连接可用,但是:
false
因此,你的问题的答案是“是的”。有许多方法可能会失败。事实上我也是 我通过代理连接到internet,因此通过Visual Studio进行调试需要我输入代理身份验证详细信息。因此,从代理运行此代码可能返回false 另一个选择可能是谷歌不可用,并且在打开时不返回任何响应 您的DNS也无法解析您提供的指向google的链接,这也使得该方法返回false。您可以输入IP地址来绕过这种可能性 在优化代码的情况下,我将首先保留异常详细信息并返回这些信息。它们可能对方法的用户有用;这些额外的信息实际上可以帮助他们弄清楚为什么他们的互联网连接不能正常工作
您也可以尝试本主题中提供的ping方法:有许多方法可能会失败。事实上我也是 我通过代理连接到internet,因此通过Visual Studio进行调试需要我输入代理身份验证详细信息。因此,从代理运行此代码可能返回false 另一个选择可能是谷歌不可用,并且在打开时不返回任何响应 您的DNS也无法解析您提供的指向google的链接,这也使得该方法返回false。您可以输入IP地址来绕过这种可能性 在优化代码的情况下,我将首先保留异常详细信息并返回这些信息。它们可能对方法的用户有用;这些额外的信息实际上可以帮助他们弄清楚为什么他们的互联网连接不能正常工作
您也可以尝试本主题中提供的ping方法:那么检查internet连接的理想方法是什么?这取决于您所说的“internet连接”是什么意思。互联网不是一个单一的、单一的实体,它是一个由网络组成的网络。我想你需要考虑一下为什么要检查这个。如果您想连接到某个主机,请尝试这样做。否则,您必须定义“连接到internet”的含义。你可以任意将其定义为与谷歌或其他主机的连接,但最终互联网上有无数主机,你无法检查所有主机。那么检查互联网连接的理想方式是什么?这取决于你所说的“互联网连接”是什么意思。互联网不是一个单一的、单一的实体,它是一个由网络组成的网络。我想你需要考虑一下为什么要检查这个。如果您想连接到某个主机,请尝试这样做。否则,您必须定义“连接到internet”的含义。你可以任意将其定义为与谷歌或其他主机的连接,但最终互联网上有无数主机,你无法检查所有主机。