Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ограничение скорости [Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2 3

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, загрузка не продолжится?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо