![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограничение скорости [Win95/98, WinME, NT4, Win2k, WinXP]
SPeller © (2003-08-27 08:25:00)
Извиняюсь, если мой вопрос уже был, но ни в поиске, ни в faq я ответа не нашёл.
Можно ли и как ограничить скорость Socket-соединения, работающего на HTTP протоколе?
Мне для отладки надо гонять загрузку файлов по HTTP протоколу, а при использовании Apache скорость соединения с localhost просто зверская :) и ничего визуально отследить не удаётся. А гонять гигабайты возможности нет.
vladimir (2003-08-30 12:49:00) [1]
Используй программу Band Speed Balancer (BSB) в качестве прокси-сервера. На сервере настрой BSB на Apache, а свою прогу настрой на BSB.
В BSB установи нужное ограничение по траффику и/или потокам.
Имя:bsb17.zip
URL: http://bsb.net.ru/cgi-bin/get.cgi?file=17
Размер: 164KB
Время Сохранения:Fri Jun 27 11:15:13 2003
Имя:bsbconfig.rar
URL: http://bsb.net.ru/bins/bsbconfig.rar
Размер: 222KB
Время Сохранения:Fri Jun 27 11:21:21 2003
Комментарий: Для упрощения процесса настройки конфигурации только версии 1.6.4 предназначена программа BSBConfig с графическим интерфейсом, которую любезно предоставил Михаил Позднышев. Щелкните мышкой здесь, чтобы скачать rar-архив размером 223К.
Reindeer Moss Eater (2003-08-27 12:06:00) [2]
Ну в любом случае ограничение трафика строится на задержках вызова методов чтения/записи. Будь это самый низкий приоритет потока или программные задержки.
Е-Моё имя (2003-08-27 12:05:00) [3]
так а чо-на сервере нельзя ограничить скорость передачи?
Digitman (2003-08-27 12:04:00) [4]
> Reindeer Moss Eater
может быть ... я пользую старенькую проверенную v1.6 ... не Delux.. там нет этого
SPeller (2003-08-27 12:04:00) [5]
Ладно, попробую с задержками, но если у кого-то ещё будут путёвые предложение - пишите, буду очень благодарен.
panov (2003-08-27 12:01:00) [6]
После того как заполнится буфер сокета при приеме, данные со стороны сервера не будут передаваться.
Поиграй на этом - освобождая(читая) принятые данные с задержками.
Может быть получится.
Reindeer Moss Eater (2003-08-27 11:56:00) [7]
В Delux"е есть параметры
Ограничение трафика в спящем режиме (b/s) - EditBox для ввода значения
Ограничение трафика в кооперативном режиме (b/s) - EditBox для ввода значения
Digitman (2003-08-27 11:51:00) [8]
> Reindeer Moss Eater
а в ReGet , кстати, и нет опции установки абс.значения скорости
есть всего три опции приоритета по траффику : высокий, корпоративный, спящий
SPeller (2003-08-27 11:30:00) [9]
Так значит задержку нужно делать до вызова recv?
Reindeer Moss Eater (2003-08-27 11:26:00) [10]
Хотя, если подумать, то семи даже много. Хватит двух.
Reindeer Moss Eater (2003-08-27 11:21:00) [11]
А как с помошью семи значений параметра THREAD_PRIORITY_...
поиметь ограничение трафика с точностью, скажем, до байта в секунду (Reget)?
Digitman (2003-08-27 11:21:00) [12]
методы, асинхронно вызываемые как реакция на то или иное сообщение/событие, выполняются в контексте определенного код.потока
задав приоритет этого кодового потока, ты можешь регулировать параметры квантования времени, выделяемого ОС на выполнение маш.инструкций этого код.потока ... а что там за инструкции - системе глубоко индифферентно, будь то инструкции, исполняемые в контексте вызовов send()/recv() или еще чего-то)
Digitman (2003-08-27 11:17:00) [13]
> А как это, "приоритета код.потока", если у меня асинхронно?
А какое отношение понятие "асинхронность" имеет к механизму квантования времени в мультизадачной/мультипоточной среде ?
SPeller (2003-08-27 11:13:00) [14]
> Digitman © (27.08.03 10:57) [33]
А как это, "приоритета код.потока", если у меня асинхронно?
Digitman (2003-08-27 10:57:00) [15]
> В вашем случае скорость передачи будет та же
не нравится ? на здоровье ! я уже сказал - организуй транспорт в доп.код.потоке и регулируй ограничения траффика уровнем приоритета код.потока ... именно так и организован механизм управления траффик-приоритетом, скажем, в ReGet
но подход этот, думаю, гораздо более проктологический, чем контролируемый программно по таймеру
SPeller (2003-08-27 10:56:00) [16]
> Digitman © (27.08.03 10:52) [31]
Ну делают ведь качалки всякие!!!
Digitman (2003-08-27 10:52:00) [17]
> SPeller
первое ты никак не ограничишь...
ну разве что внедрившись каким-то невообразимым способом в "дебри" драйвера физического транспортного устройства... скажем, ОЕМ-драйвера сет.карты...
SPeller (2003-08-27 10:48:00) [18]
Сейчас второе, а потом и первое понадобится. Лучше сразу всё выяснить.
Reindeer Moss Eater (2003-08-27 10:45:00) [19]
Т.е. пока не вызовем recv, загрузка не продолжится?
Тебе что важно? Что бы физический канал был нагружен заданным bandwidth, или уровень приложения "думал", что данные передаются с заданной скоростью?
По моему - второе.
SPeller (2003-08-27 10:41:00) [20]
> Digitman © (27.08.03 10:28) [26]
Мне надо именно чтобы скорость передачи(!) данных (или их получения от сервера) была заданная. В вашем случае скорость передачи будет та же, а лишь скорость выборки полученного будет заданной.
> Reindeer Moss Eater © (27.08.03 10:34) [27]
Ага, знаю я про этот буфер :) Получается, что пока буфер этот не освободим, получать больше не будем? Т.е. пока не вызовем recv, загрузка не продолжится?