Как можно узнать текущую скорость соединения с интернетом - C#
Формулировка задачи:
Привет.
Как можно узнать текущую скорость соединения с интернетом? (Ну и вывести ее, например, в лэйбл.) Имеется ввиду не пропускную способность соответствующего канала, а скорость использования инета на данный момент.
Решение задачи: «Как можно узнать текущую скорость соединения с интернетом»
textual
Листинг программы
private void InitializeNetworkInterfaces()
{
PerformanceCounterCategory performanceCounterCategory = new PerformanceCounterCategory("Network Interface");
InstanceDataCollectionCollection data = performanceCounterCategory.ReadCategory();
interfaces = performanceCounterCategory.GetInstanceNames();
int length = interfaces.Length;
if (length > 0)
{
bandwidthTimer.Enabled = true;
dataSentCounters = new PerformanceCounter[length];
dataReceivedCounters = new PerformanceCounter[length];
}
for (int i = 0; i < length; i++)
{
dataReceivedCounters[i] = new PerformanceCounter("Network Interface", "Bytes Sent/sec", interfaces[i]);
dataSentCounters[i] = new PerformanceCounter("Network Interface", "Bytes Sent/sec", interfaces[i]);
}
}
private void bandwidthTimer_Tick(object sender, EventArgs e)
{
int length = interfaces.Length;
float sendSum = 0;
float receiveSum = 0;
try
{
for (int i = 0; i < length; i++)
{
sendSum += dataSentCounters[i].NextValue();
receiveSum += dataReceivedCounters[i].NextValue();
}
}
catch (Exception) {
bandwidthTimer.Stop();
}
decimal used =(decimal) (sendSum + receiveSum)*8/1000;
bandwidthUsed.Text = (decimal.Round(used, 1)).ToString();
}