Вопрос № 100562: Уважаемые эксперты доброго времени суток!
Раньше никогда толком не работал с сетями, но сейчас появилась необходимость решить один вопрос..
И так:
Необходимо: построчно получить ответ на GET запрос серверу. Скрипту PHP передаются пераме...Вопрос № 100565: Почему в отладчике функция-метод после строки Result := ... пишет, что в переменной Result что-то есть, а после выхода из функции, выясняется, что возвращается пустая строка?...
Вопрос № 100.562
Уважаемые эксперты доброго времени суток!
Раньше никогда толком не работал с сетями, но сейчас появилась необходимость решить один вопрос..
И так:
Необходимо: построчно получить ответ на GET запрос серверу. Скрипту PHP передаются пераметры и начинается продолжительная "работа", в процессе которой он выводит строку статуса. Выполнение всей "работы" может занять до получаса, а то и дольше. Ввиду этого воспользоваться каким либо HTTP клиентом (idHTTP и т.п.) не получится, надо выводить реальный стутус работы, а если я все правильно понял с HTTP, он (клиент) будет ждать полного выполнения "работы". Получается, нужно использовать
TCPClient и читать выводимую скриптом информацию. А вот с этим возникли "небольшие проблемки".
Буду благодарен за любую информацию, совет, а особенно за маленький примерчик.
Отправлен: 02.09.2007, 19:17
Вопрос задал: Spawn (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: PGM
Здравствуйте, Spawn!
Скорее всего вам нужны асинхронные сокеты - в частности TClientSocket. Простейшие примеры на эту тему есть в поставке Delphi. Вкратце: сокет открывается, на событие OnConnect посылается запрос серверу, а ответ собирается самостоятельно в событии OnRead (вызывается системой пока есть "куски" информации). При этом основная работа не блокируется и можно выводить статус соединения, а также прервать соединение, если надоело :).
Ответ отправил: PGM (статус: 9-ый класс)
Ответ отправлен: 02.09.2007, 21:57 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! Коротко и ясно, попробуем осуществить предложенное.
Вопрос № 100.565
Почему в отладчике функция-метод после строки Result := ... пишет, что в переменной Result что-то есть, а после выхода из функции, выясняется, что возвращается пустая строка?