如题,就是每秒接收了多少个字节,发送了多少字节.我在网上找了好久了,找到的一个满是 bug 的,一个是要付钱的函数包.谢谢!

解决方案 »

  1.   

    up
    满是bug的能发给我吗?
    let me look look?
      

  2.   

    满是bug的 give me too,OK? [email protected]
      

  3.   

    建立连接后用下面的函数来获取连接状态DWORD RasGetLinkStatistics (
      HRASCONN hRasConn,      // handle to connection
      DWORD dwSubEntry,       // SubEntry for link
      RAS_STATS *lpStatistics // buffer to receive statistics
    );在lpStatistics中有给出Bps
      

  4.   

    Hankuu:
        谢谢!但是在 MSDN 中找不到对该函数及结构 RAS_STATS 的描述,自然编译时也因为函数未定义而无法通过。另外在 Ras.h 中也没有对该函数的声明。
         能否说详细点?
      

  5.   

    好像是原载于 www.vckbase.com 的,对 hw 表示感谢!太长,在这贴不了。
    但我在编译时会出现很多错误
    ------------------------------------------------------------------
    //如何得到拨号上网时的网络速度(hw整理发表于2002-3-15 23:19:23)

      

  6.   

    好消息
    闻大侠的 《如何得到拨号网络传输速度》http://www.ittide.com/document/article/netware/68.html我应该再试一试
      

  7.   

    RasGetConnectStatus(  HRASCONN, LPRASCONNSTATUS );
    看MSDN就知道了。
      

  8.   

    向外发送千把个字节,统计一下时间算出速度就可以了,类似于ping。(这是下策,不到万不得已不要用。
      

  9.   

    WangAQ(老王) :RasGetConnectStatus 中两个参数,hrasconn: RAS 连接的句柄;lprasconnstatus 指向结构 RASCONNSTATUS 的指针,在 RASCONNSTATUS 结构中除了另外一个枚举  RASCONNSTATE 外,其他成员的作用均与连接速度无关。那么只能看 RASCONNSTATE ,那么如何由该枚举获得连接速度?我认为由 RasGetConnectStatus()不可能得到 RAS 当前连接速度,还望赐教,谢谢!
      

  10.   

    抱歉,误导了你。我想当然的认为RasGetConnectStatus能完成你的目标,经你一问,仔细研究了一下,不行。
    Hankuu给出了一个很有意思的函数,RasGetLinkStatistics,我是在Win2000下装的VC6,我的MSDN上也没有这个函数,但把Rasapi32.dll的输出表倒出来发现有这个函数,而且还发现一个:RasGetConnectionStatistics。
    到微软的MSDN网站上去查这个函数,原形如下:
    DWORD APIENTRY RasGetConnectionStatistics(HRASCONN hRasConn,                                          RAS_STATS *lpStatistics);
    以及RAS_STATS结构定义如下:
    typedef struct _RAS_STATS
    {
        DWORD   dwSize;
        DWORD   dwBytesXmited; //发送的字节数
        DWORD   dwBytesRcved;  //接收的字节数
        DWORD   dwFramesXmited;
        DWORD   dwFramesRcved;
        DWORD   dwCrcErr;
        DWORD   dwTimeoutErr;
        DWORD   dwAlignmentErr;
        DWORD   dwHardwareOverrunErr;
        DWORD   dwFramingErr;
        DWORD   dwBufferOverrunErr;
        DWORD   dwCompressionRatioIn;
        DWORD   dwCompressionRatioOut;
        DWORD   dwBps;  //连接速度
        DWORD   dwConnectDuration;} RAS_STATS, *PRAS_STATS;在RAS.H中加上上面两个声明。写个程序测试一下,OK。
    win98下不能用这个函数。
    装VisualStudio.NET吧,或者更新PlatformSDK,最差也要去买张最新的MSDNLibrary。
    这个问题也让我学了一些东西,有问题我们再一起研究吧。
      

  11.   

    我写的简单测试程序如下:
    #include "ras.h"
    .....
    .....RAS_STATS pStats;
    .....
    hrasconn=RasDial(...);
    .....
    pStats.dwSize = sizeof(RAS_STATS);
    RasGetConnectionStatistics(hrasconn,&pStats);
    wsprintf( szBuf, "%d",pStats.dwBps  );
    .....
    RasHangup(...);
      

  12.   

    WangAQ(老王) :
        非常感谢您!Win XP 下通过。尽管还有一个遗憾是在 Win98 下不能使用该方法。同样感谢 Hankuu!不过我还有两个问题要请教您:
    1. 如何将 Rasapi32.dll或是其它 DLL 的输出表导出从而发现某个函数?
    2. 发现某个在 DLL 中有定义的而 MSDN 中没有定义的函数应当如何使用,依据是什么?