在SystemInformation.Network=true;下
如何获得本地网络连接是否可用,例如网线没有插,系统显示本地连接断开,
如何在C#里获得这个信息

解决方案 »

  1.   

    在vs.net 2003找不到,在VS2005中就有System.Net.NetworkInformation这个命名空间
    public static void CountTcpConnections()
    {
        IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
        TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
        int establishedConnections = 0;
        
        foreach (TcpConnectionInformation t in connections)
        {
            if (t.State == TcpState.Established)
            {
                 establishedConnections++;
            }
            Console.Write("Local endpoint: {0} ",t.LocalEndPoint.Address);
            Console.WriteLine("Remote endpoint: {0} ",t.RemoteEndPoint.Address);
           
        }
         Console.WriteLine("There are {0} established TCP connections.",
            establishedConnections);
    }
      

  2.   

    TcpState 枚举指定传输控制协议 (TCP) 连接的状态。 命名空间:System.Net.NetworkInformation
    程序集:System(在 system.dll 中)成员名称 说明 
     Closed TCP 连接处于关闭状态。  
     CloseWait TCP 连接的本地终结点正在等待来自本地用户的连接终止请求。  
     Closing TCP 连接的本地终结点正在等待对先前发送的连接终止请求的确认。  
     DeleteTcb 正在删除 TCP 连接的传输控制缓冲区 (TCB)。  
     Established TCP 握手完成。已建立连接,可以发送数据。  
     FinWait1 TCP 连接的本地终结点正在等待来自远程终结点的连接终止请求或对先前发送的连接终止请求的确认。  
     FinWait2 TCP 连接的本地终结点正在等待来自远程终结点的连接终止请求。  
     LastAck TCP 连接的本地终结点正在等待对先前发送的连接终止请求的最终确认。  
     Listen TCP 连接的本地终结点正在侦听来自任何远程终结点的连接请求。  
     SynReceived TCP 连接的本地终结点已发送并收到连接请求并且正在等待确认。  
     SynSent TCP 连接的本地终结点已向远程终结点发送一个设置了同步 (SYN) 控制位的段标头并且正在等待匹配的连接请求。  
     TimeWait TCP 连接的本地终结点正在等待足够的时间后传递,以确保远程终结点收到了它的连接终止请求确认。  
     Unknown TCP 连接状态是未知的。 
      

  3.   

    你用wmi看看,应该可以的
    windows编程,不能解决的,就考虑一下api
      

  4.   

    我找到方法了,用API解决
    C#:
    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState(out int connectionDescription,int reservedValue);
    int flag;
    string State=InternetGetConnectedState(out flag,0).ToString();
    State为true表示连接正常,false表示连接断开散分~~~