我是c#/ .net开发的新手,但我已经为我公司的一小部分资产组建了一个股票跟踪应用程序.我还设置了它在SQL 2000中连接的数据库.
当网络连接可用时,它目前工作得非常出色,但是当我远离连接时,我想扩展它以供使用.
首先,我需要知道是否有可用的连接.所以我把它放在一起:
private int availableNetAdapters() { int nicCount = 0; foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { if (nic.OperationalStatus == OperationalStatus.Up) { nicCount++; } } return nicCount; }
似乎工作,但我必须测试"> 1",因为无论其他适配器状态如何,始终检测到"MS TCP环回接口".
是否有更好/更简单的方法来检查连接?
G
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
您还可以使用事件NetworkAvailabilityChanged
和NetworkAddressChanged
该类来监视IP地址和网络可用性更改.
编辑:请注意,此方法会检查计算机上可能存在的所有可用网络接口(无线,LAN等).如果其中任何一个连接,它将返回true.
还有一些事情要记住:
Avaialable网络连接!=可用的互联网连接.
Internet Access!=访问特定网站(想想代理过滤器,或者网站可能只是关闭)
因此,通常最好直接测试对所需特定资源的访问.
这些资源不稳定; 无论如何,你必须处理异常.因此,通常最好只获得一个资源,就好像你确定它存在并将开发时间放在一起,以确保你的异常处理程序能够很好地处理失败.