Скорость загрузки сокетов C # .net - PullRequest
1 голос
/ 01 октября 2010

У меня есть класс, который использует сокеты для асинхронной отправки и получения данных по сети:

class Client
{
    private Socket mSocket;
    /*
    ...
    */
    public void SendPacket(byte[] data)
    {
        mSocket.BeginSend(data, 0, data.Length, SocketFlags.None, OnSent, null);
    }

    private void OnSent(IAsyncResult ar)
    {
        mSocket.EndSend(ar);
    }
}

У меня вопрос, как я могу рассчитать скорость загрузки во время отправки данных?Есть ли в .Net способ указать скорость загрузки / выгрузки через определенный сокет?

Я использую C # 4.0

1 Ответ

0 голосов
/ 01 октября 2010

Операционная система предоставляет такую ​​информацию. Запустите Perfmon.exe, выберите Performance Monitor. Щелкните правой кнопкой мыши область графика и выберите «Добавить счетчики». Посмотрите в разделе «Сетевой интерфейс». Отправленных байт / сек дает хороший показатель скорости. Или текущая пропускная способность.

Это также доступно в C #, используйте класс PerformanceCounter. Выбор правильного сетевого интерфейса может быть проблематичным, просто имейте в виду, что информация доступна у вас под рукой с монитором производительности. Пользователь, как правило, интересуется только тем, как далеко продвинулась загрузка, и она мало что может сделать, чтобы сделать это быстрее. Простой ProgressBar отлично справится с этой задачей.

...