|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.09.2007, 18:47 | #1 |
Андрей
Форумчанин
Регистрация: 21.11.2006
Сообщений: 457
|
Многопоточность Indy
Кругом только и написано: "Преимуществом Indy является многопоточность при блокирующих сокетах...", а на деле я столкнуся с реальной проблемой:
Мне надо выполнить IdHhtp.Get() в нескольких потоках. Че не находил - нихрена не понял. Народ, помогите конкретным примером...
ICQ: 5311314
[SIGPIC][/SIGPIC] |
24.09.2007, 09:56 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Ты не так понял дивиз Indy под многопоточностью там понимается лишь "каждому коннекту свой поток" не более)
Для реализации "скачивания" конкретного файла в несколько потоков лучше использовать методы, отличные от Indy.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
04.02.2009, 16:32 | #3 | |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
Цитата:
http://www.google.com/search?client=...utf-8&oe=utf-8 |
|
04.02.2009, 17:13 | #4 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
ну чтож, можно реализовать, кпримеру, так: узнаем размер удаленного файла:
Код:
Код:
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
04.02.2009, 17:42 | #5 | |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
у меня задача 1 файл в 1 поток.
т.е. все сводиться к Цитата:
|
|
04.02.2009, 18:18 | #6 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
если один файл в один поток, то лучше не заморачиваться с разделением файла на байтовые последовательности а качать весь. Тогда в каждом потоке создаем Idhttp и GET-м забираем файл
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
05.02.2009, 02:33 | #7 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
Так и сделал. На некоторых сайтах возникает ошибка connection reset by peer и цикл с GET'ом останавливается. Пример такогих сайтов - offtopa.net, dragonfever.info.
Последний раз редактировалось Viteef; 05.02.2009 в 02:35. |
05.02.2009, 09:41 | #8 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Воспользуйся Request.KeepAlive в компоненте IdHttp должно помочь.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
05.02.2009, 14:38 | #9 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
|
05.02.2009, 18:02 | #10 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
а, если в цикле, то после каждого GET-а делай idhttp.Disconnect так будет правильней и , по идее, не должно возникать сброса сессии удаленным хостом
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
многопоточность в Delphi | xakkkkker | Свободное общение | 12 | 13.08.2010 18:52 |
как обновить indy 9 на indy 10 | Пилигрим | Компоненты Delphi | 16 | 30.04.2010 10:11 |
Indy 9 против Indy 10 | OrdJONY | Свободное общение | 2 | 08.11.2008 20:28 |
многопоточность в сетевых приложениях | AlexandrY | Работа с сетью в Delphi | 9 | 13.07.2008 02:43 |
IRC в Indy | Zer0 | Работа с сетью в Delphi | 2 | 12.02.2008 09:57 |