我需要在特定时间找到可用的带宽。代码必须在Visual C ++或.Net系列中开发。如果有人知道如何,请帮助我。
答案 0 :(得分:15)
检查带宽的唯一方法是实际尝试使用它,即从其他地方下载文件并测量吞吐量。
即便如此,它也只是一个近似值,因为其他网络效应会影响结果:
答案 1 :(得分:3)
如果您指的是当前的网络利用率,可以致电
DeviceIoControl
(hDevice,
OID_GEN_STATISTICS
,
... )
获取特定于设备的信息。否则,请拨打GetIpStatisticsEx以获取系统信息,或使用WMI的Win32_PerfRawData_Tcpip_NetworkInterface。
试图通过尝试使连接饱和来尝试获得“可用”带宽不是一种明智或可靠的措施。只需尝试一些可用的在线速度测试,并考虑它涉及不可扩展的带宽,并且易受拥塞控制,QoS和流量整形的影响。
答案 2 :(得分:2)
即使使用它,检查带宽也很棘手。例如,如果您尝试从远程计算机X下载数据并估计N Kbs的数字,那么您将如何知道您的带宽限制或远程计算机X连接的限制?
您需要同时使用多台远程计算机同时开始下载(或上传,如果这是您要测量的方向)并继续增加负载,直到吞吐量停止增加。
但正如Alnitak所说,你仍然不知道其他因素可能会影响结果。例如,您的机器上是否有其他进程使用该连接?或者是隔壁的孩子捎带你的无线局域网并窃取你的带宽?也许这就是你想要找到的东西!