Как получить пропускную способность на C #

Здравствуйте, я хочу рассчитать пропускную способность через C #, используя HttpWebRequest.
Я подумал о запросе большого файла (500 КБ) при запуске System.Diagnostics.Stopwatch.
Тогда я смог вычислить скорость в КБ / с. На данный момент у меня есть 2 проблемы:
1. Насколько это будет точно? Могу ли я рассчитывать на это или просто использовать другой метод?
2. Как я могу разместить файл на URL-адресе, который я могу жестко запрограммировать, не беспокоясь о проблемах на стороне сервера? Могу ли я как-то использовать файл с таким размером, который уже присутствует, желательно на странице googles или microsofts?

Заранее спасибо,
Alex


person alex    schedule 20.06.2011    source источник
comment
Если вы загружаете файл, размещенный кем-то другим, убедитесь, что этим вы не нарушаете его условия обслуживания (TOS).   -  person Greg    schedule 20.06.2011
comment
Я бы хотел, чтобы люди использовали менее сбивающий с толку термин «пропускная способность», а не «полоса пропускания».   -  person ChaosPandion    schedule 20.06.2011
comment
@Greg Спасибо за это, я бы забыл об этом: D   -  person alex    schedule 20.06.2011
comment
@ChaosPandion в чем именно разница? Все знают, о чем я говорю.   -  person alex    schedule 20.06.2011
comment
@alex - для тех, кто разбирается в электронике, определение является буквальным. Полоса пропускания - это диапазон частот, поддерживаемых в данной полосе. Пропускная способность - это количество, которое система может обработать с течением времени.   -  person ChaosPandion    schedule 21.06.2011
comment
А, ладно, я этого не знал. Отредактирую ..   -  person alex    schedule 21.06.2011


Ответы (1)


Это действительно не то, на что вам следует полагаться:

  • Пропускная способность вашего пользователя будет колебаться в зависимости от времени суток, загруженности интернет-провайдера, других программ, открытых с помощью соединения ...
  • Кроме того, если вы делаете это на основе файла, размещенного на сервере, результат, который вы получите, будет зависеть от того, насколько загружен этот сервер.
  • Если у одного из ваших пользователей есть ограничение на объем данных, которые они могут загрузить, они могут не поблагодарить вас за то, что вы заставили их загрузить дополнительный файл, который им не нужен.

Лучше всего попросить пользователя выбрать тип подключения из списка (например, «Модем - 56 кбит / с», «DSL -‹ 2 Мбит / с ») и использовать его для оценки доступной пропускной способности.

person thomson_matt    schedule 20.06.2011
comment
Проект, над которым я работаю, действительно основан на Интернете. Никто не может подумать об его использовании, если у него нет DSL. - person alex; 20.06.2011
comment
Что ж, спросите их, есть ли у них 512 кбит / с, 1 Мбит / с, 2 Мбит / с ... Многие программы (Steam, iTunes ...) делают это, чтобы определить, какую пропускную способность они могут получить. - person thomson_matt; 20.06.2011
comment
Не думаю, что мне следует беспокоить пользователя этим. Моя программа должна работать сама по себе, и я не думаю, что 500 КБ никому вредят. Даже с DSL Lite. - person alex; 20.06.2011
comment
проблема в том, что 500 КБ слишком мало для точного измерения. - person Ilia G; 21.06.2011
comment
ну теперь я понимаю. Как вы думаете, можно ли загрузить файл несколько раз, например, загрузить его 10 раз и посмотреть, не займет ли это слишком много времени, чем прервать его и использовать измеренные 5 раз? - person alex; 21.06.2011
comment
А что, если их компьютер начнет загружать обновления на полпути после третьей попытки, и их соединение внезапно станет медленнее? Или если вы рассчитываете пропускную способность в 3 часа ночи, а затем используете то же значение в 11 часов утра, когда сеть намного загружена? Что, если они используют мобильный ключ и платят за подключение к Интернету мегабайтами? - person thomson_matt; 21.06.2011