![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько HTTP запросов один за одним
AlexanderSK © (2003-11-10 16:54:00)
var
i: Integer;
begin
for i := 0 to 100 do
begin
HTTP.Body := "MyFile" + IntToStr(i);
HTTP.Get("MyURI" + IntToStr(i) + ".html");
end;
При выполнении этого кода переодически возникает ошибка - "10057:Socket is not connected"
В чем дело? Подскажите, пожалуйста, как ее избежать!
Reindeer Moss Eater (2003-11-11 17:40:00) [1]
А как же тогда быть?
Открой свой прект в IDE, выдели мышкой HTTP, перейди в инспектор объектов на закладку Events, присмортись к именам событий.
PS: это не способ заставить работать компонент в синхронном режиме.
AlexanderSK (2003-11-11 17:36:00) [2]
А как же тогда быть? Как заставить его работать в синхронном режиме?
Reindeer Moss Eater (2003-11-11 16:48:00) [3]
101 раз подряд
Reindeer Moss Eater (2003-11-11 16:39:00) [4]
Так вот: это - компоненты, использующие асинхронный режим.
После вызова метода Get компонент начинает в поте лица выкачивать указанный урл.
Сразу после этого (после вызова, а не после окончания закачки)происходит немедленный возврат (переход к выполнению следующей строки исходника иными словами).
И этому же самому экземпляру говорят: брось все нафик, качай следующий урл.
И так сто раз подряд.
AlexanderSK (2003-11-11 16:26:00) [5]
>Reindeer Moss Eater © (11.11.03 16:21) [7]
HTTP: TNMHTTP;
Reindeer Moss Eater (2003-11-11 16:21:00) [6]
В твоем, ..., исходнике ... переменная по фамилии "HTTP" - это что? ....!
AlexanderSK (2003-11-11 16:14:00) [7]
>Reindeer Moss Eater © (10.11.03 17:58) [5]
>На вопрос ответь.
>Пункт 2 поста номер 3
Протокол!
Reindeer Moss Eater (2003-11-10 17:58:00) [8]
На вопрос ответь.
Пункт 2 поста номер 3
AlexanderSK (2003-11-10 17:48:00) [9]
Ну а как с этом бороться?
Reindeer Moss Eater (2003-11-10 17:33:00) [10]
1.Ты только что дал один из вариантов ответа на свой собственный вопрос.
2. Что такое HTTP?
3. Подозреваю, что это HTTP клиент с асинхронным режимом работы.
(если последнее верно, то чего же ты ожидал от такого кода?)
AlexanderSK (2003-11-10 17:28:00) [11]
>Reindeer Moss Eater © (10.11.03 16:57) [1]
Нет не говорит!
Потому что если сделать так:
begin
ShowMessage("MyURI" + IntToStr(i) + ".html"); {Приличная задержка по времени}
HTTP.Body := "MyFile" + IntToStr(i);
HTTP.Get("MyURI" + IntToStr(i) + ".html");
end;
то все прекрасно работает!
Reindeer Moss Eater (2003-11-10 16:57:00) [12]
Текст ошибки ни о чем не говорит?