![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.03.2009
Сообщений: 4
|
![]()
Задача:
1. Залогиниться на сайт 2. Сделать несколько запропросов одновременно/паралельно 3. Обработать их результат. Использую Indy10. После первого коннекта, который отправляет на сайт логин и пароль для клиента создается сессия на сервере. Пока его не отдисконнектить, я могу спокойненько делать любые GET/Post запросы последовательно, используя 1 копию компонента. Внимание вопрос! Как делать, скажем, 5 запросов паралельно используя созданную сессию? |
![]() |
![]() |
![]() |
#2 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
![]()
1. Описываешь поток с запросом
2. Запускаешь N потоков Если нет проверки на сайте по IP, то сработает, иначе звиснет на первом потоке Пример потока Код:
Последний раз редактировалось KORN; 05.03.2009 в 08:44. Причина: пользуйемся правкой |
![]() |
![]() |
![]() |
#3 |
Регистрация: 04.03.2009
Сообщений: 4
|
![]()
Хочется уточнить один момент. Вы предлагает создовать несколько экземпляров idHTTP в потоках, что вполне логично, однако для того, чтобы поддерживать сессию необходимо кроме одного IP использовать cookie, которые были получены при первом коннекте, иначе придется логиниться постоянно, а это было бы нежелательно.
|
![]() |
![]() |
![]() |
#4 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
![]()
cookie можно сделать общий для всех потоков... я вроде где-то так уже делал....
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 04.03.2009
Сообщений: 4
|
![]()
А еще вопрос как запустить число потоков "на выбор"? Т.е. я в Edit указываю цифирку сколько потоков использовать, а программа их создает.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
динамический массив потоков
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#7 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
![]()
Как сказала бы Масяня: "Как-то так"
Код:
ThreadsRunning - кол-во запущенных потоков (integer) Последний раз редактировалось KORN; 05.03.2009 в 08:42. Причина: пользуйемся правкой |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Только в случае использования Indy 10 (начиная с какой именно версии не помню) все это реализуется еще проще:
вкладка IndyMisc компоненты TidThreaadComponent TIdSchedulerOfThreadPool
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#9 |
Регистрация: 04.03.2009
Сообщений: 4
|
![]()
knight, Квэнди, большое вам спасибо! Все работает!
Вот еще вопрос. Есть у меня набор процедур в главном модуле, которые работают с dll. Схема такая: Unit1 -запускает поток-> который должен используя функции DLL выполнить задачу. Как это лучше сделать? Синхронизировать импорт DLL? Можно ли использовать фукции DLL используя статичную загрузку? Например я в начале работы программы ее подгрузил, а в потоке только методы использовать? Последний раз редактировалось milkfake; 06.03.2009 в 10:18. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как обновить indy 9 на indy 10 | Пилигрим | Компоненты Delphi | 16 | 30.04.2010 10:11 |
Indy 9 против Indy 10 | OrdJONY | Свободное общение | 2 | 08.11.2008 20:28 |
Поток | Черничный | Общие вопросы Delphi | 5 | 27.09.2008 21:23 |
Поток в никуда... | prizrak1390 | Работа с сетью в Delphi | 1 | 30.06.2008 10:32 |
поток файлов | мандарин | Общие вопросы Delphi | 1 | 24.04.2007 12:20 |