2010-11-25 65 views
-3

我想写一个代码来获得可用带宽。 使用其中之一algorithm.ex.spruce/pathload.可用带宽

我想在Windows中使用C++代码。 我有linux代码。 但我想要一个基于Windows的代码,它可以让我上下带宽。

+0

Ehm,在C++中?什么API? Win32的? MFC? 。净? – EboMike 2010-11-25 04:54:00

+0

好问题+1 – Rella 2011-01-08 03:03:51

回答

1

带宽为什么资源?如果这是一个网络资源,那么任何语言或操作系统都不会给你任何真实的带宽估计。您需要在您需要遍历的链路的另一端呼叫某个事物,并在该时间点估计带宽。

或者更好的说...您需要调用Web服务器上的文件来测试某人的家庭Internet连接的下载速度。请记住,所获得的数字只对那个时间点准确。由于任何资源的带宽在实际使用时可能会更高或更低,因为外部因素总是会影响带宽(其他prorcesses,用户等)

为什么你需要带宽和资源?

0

如果你问,你不能胜任。将Linux转换为Windows需要两个平台的知识,这显然不具备。根据我的经验,几乎所有的网络友好带宽估计算法(pathload,pathchirp等)都不适合高速带宽。如果带宽大约为1mb,那么这些旧算法是合适和实用的。此外,这些算法假定网络是'干净的'(没有其他流量)。现在,几乎所有这些“网络友好”算法都不实用。

其他变种带宽估计工具,如netperf,netcps是基于暴力方法。暴力方法不友善。大多数算法在延迟方面存在问题(如果基于tcp)并达到hdd读取/写入速度(如果写入hdd而不是内存)。

IMO最好的带宽估计工具是基于UDP的(不受tcp不同的延迟影响)蛮力(不受其他流量影响),并针对高速网络定制了控制流。

你会遇到的其他问题是代码优化。您必须确保您的代码经过高度优化。如果你使用c#,GC会带来一个可能的问题。