|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2009, 14:21 | #1 |
Регистрация: 04.03.2009
Сообщений: 4
|
Indy и поток
Задача:
1. Залогиниться на сайт 2. Сделать несколько запропросов одновременно/паралельно 3. Обработать их результат. Использую Indy10. После первого коннекта, который отправляет на сайт логин и пароль для клиента создается сессия на сервере. Пока его не отдисконнектить, я могу спокойненько делать любые GET/Post запросы последовательно, используя 1 копию компонента. Внимание вопрос! Как делать, скажем, 5 запросов паралельно используя созданную сессию? |
04.03.2009, 15:05 | #2 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
1. Описываешь поток с запросом
2. Запускаешь N потоков Если нет проверки на сайте по IP, то сработает, иначе звиснет на первом потоке Пример потока Код:
Последний раз редактировалось KORN; 05.03.2009 в 08:44. Причина: пользуйемся правкой |
04.03.2009, 15:33 | #3 |
Регистрация: 04.03.2009
Сообщений: 4
|
Хочется уточнить один момент. Вы предлагает создовать несколько экземпляров idHTTP в потоках, что вполне логично, однако для того, чтобы поддерживать сессию необходимо кроме одного IP использовать cookie, которые были получены при первом коннекте, иначе придется логиниться постоянно, а это было бы нежелательно.
|
04.03.2009, 18:31 | #4 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
cookie можно сделать общий для всех потоков... я вроде где-то так уже делал....
|
04.03.2009, 23:27 | #5 |
Регистрация: 04.03.2009
Сообщений: 4
|
А еще вопрос как запустить число потоков "на выбор"? Т.е. я в Edit указываю цифирку сколько потоков использовать, а программа их создает.
|
04.03.2009, 23:28 | #6 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
динамический массив потоков
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
05.03.2009, 08:35 | #7 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
Как сказала бы Масяня: "Как-то так"
Код:
ThreadsRunning - кол-во запущенных потоков (integer) Последний раз редактировалось KORN; 05.03.2009 в 08:42. Причина: пользуйемся правкой |
05.03.2009, 08:42 | #8 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Только в случае использования Indy 10 (начиная с какой именно версии не помню) все это реализуется еще проще:
вкладка IndyMisc компоненты TidThreaadComponent TIdSchedulerOfThreadPool
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
06.03.2009, 10:14 | #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 |