我在开发一个winform程序其中用到了WebBrowser控件。在WebBrowser控件打开网页时我想检测一下客户的网速是否达到软件的要求。不符合要求的话。在使用过程中给予提示(马上给予提示)。目前我也只能得到当前客户上传和下载的网速。但是我不知道客户网速的上限是多少。还有就是WebBrowser控件所占用的网络资源(实时)是多少。谢谢大家

解决方案 »

  1.   

    谢谢。请问能直接获得当前程序所占用的网络资源吗。就是webbrowser控件
      

  2.   

    或者在你的软件中加入ping的功能,进行一下网络环境的测试,指定一个地址,如果返回值达到要求那么就是合格下面是c# ping的实现,可以返回的IP, timeout, buffer等值,可以根据自己需要获取比较。 public string sPing(string IP)
            {  
                Ping pingSender = new Ping();
                PingOptions options = new PingOptions();
                options.DontFragment = true;
                string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
                byte[] buffer = Encoding.ASCII.GetBytes(data);
                int timeout = 1200;
                //string IP = "192.168.100.1";
                PingReply reply = pingSender.Send(IP, timeout, buffer, options);            if (reply.Status == IPStatus.Success)
                {
                    //string sText;                string sPing;
                    
                    sPing = "网络合格";               
                   return sPing;            
                }
                else
                {
                    return "网络故障";               
                }
              
                    }
      

  3.   

    呵呵~我的那里也是这样写的。但是~我不是说了吗要实时测试。按这个方法来做的话就得在加一个线程。每隔一段时间就去PING一下这样会不会影响客户体验呢
      

  4.   

    而且我访问的服务器PING被禁掉了
      

  5.   

    恩~技术上呢没有像你说的哪么做过。会不会很复杂呢?主要就是我说的实时检测的问题。最好是能知道webbrowser控件所占用的网络资源或者说软件当前进程所占用的网络资源。比如说给我提供一个window的api来检测
      

  6.   

    其实测速只是一个很笼统的概念,这里主要看针对的是最大带宽还是网络时延,刚才说的ping的实现主要是对延迟的测试,不过带宽被严重占用的情况下,数据包在buffer队列等候的时间就会加大,ping的返回RTT值就会很大。所以对网络时延的测试数据值是网络状况良好与否的很好反应。
      

  7.   

    那你就比较倾向于建立线程每隔一段时间就去PING一下是吗
      

  8.   

    可是我没有办法让服务器开启ping
      

  9.   

    timer定时查询
    http://www.codeproject.com/KB/system/networkmonitorl.aspx
      

  10.   


    不用ping也可以,因为目的不是用ping,目的是发报测试,ping实现的效果也是发包。
      

  11.   

    看来我还是了解的不透彻。谢谢你了。那这么说的话我是不是可以像服务器发送一个http请求然后等服务器返回一个固定大小的网页。然后用发送时的时间和得到返回的时间来判断延迟呢。你能给个具体的算法吗
      

  12.   

    wuyq11 你给的是网卡的网络使用情况 不过也谢谢你
      

  13.   


    其实这里说的也是一个思路,也就是监控网卡,不过也需要本机有数据发送操作,才可以看到本机的速率变化,最后面的WMI调用那段代码会很耗费资源,建议参考它前面2个代码,也是很好的思路
      

  14.   

    检测网卡的这个早已经做了。但是客户可能开其他软件比如PPS看电影。主要还是要知道当前程序所使用的网络资源而不是所有使用的网络资源