Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте,
А>Столкнулся с вот такой проблемой. Надо передать файл на сайт используя HttpWebRequest причем со скоростью 5kb. Подскажите в какую сторону смотреть.
Можно так: исходя из заданного значения ограничения вычисляешь сколько байт можно передавать за секунду и раз в секунду отправляешь порцию такого размера. Например ограничение 1024 байта/сек, нужно передать, тогда каждую секунду передаешь порцию максимум 1024 байта.
... << RSDN@Home 1.2.0 alpha rev. 676>>
А>>Столкнулся с вот такой проблемой. Надо передать файл на сайт используя HttpWebRequest причем со скоростью 5kb.
А кто ограничение выставляет? Где проверяется, каким образом считается, и что будет, если его не соблюдать?
_M_>Можно так <skipped>
Так все равно точно 5 кб/с не получится.
Здравствуйте, <Аноним>, Вы писали:
А>Ограничение выбирает сам пользователь. Это нужно чтобы не забить весь канал и пользователь мог пользоваться дальше интернетом.
А>Если использовать первый вариант то программа будет забивать канал в начале каждой минуты что не есть хорошо.
На всякий случай напомню, что в TCP/IP трафик все равно передается
пакетами. Время отправки одного пакета почти не зависит от его размера. Поэтому лучше раз в минуту передать 1kb чем пять раз по 200 байт — потратишь меньше ресурсов канала.
А>В идеальном случае программа должна использовать весь свободный канал, а в случае если кто-то еще использует канал то брать только то что свободно.
А>Тоесть приоритет на канал должен быть самый низкий.
В windows вплоть до висты нет приоритизации ввода-вывода. Поэтому единственный вариант добиться чего-то похожего — отправлять данные
а) синхронно
б) небольшими порциями
в) из потока с низким приоритетом.
И то я не уверен, что все получится правильно — нужно экспериментировать. Есть риск, что низкоприоритетный поток один хрен будет ухитряться вклиниваться в передачу высокоприоритетного.
... << RSDN@Home 1.2.0 alpha rev. 677>>