Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Небуферизованный вывод [D5]


Дмитрий ©   (2002-01-09 21:20:00) 

Пусть есть перловый cgi с отключенной буферизацией ($| = 1), который в бесконечном цикле с периодом X секунд выводит данные клиенту, то есть в клиенту в течение всего сеанса данные дописываются в броузер (push - технология, так пишутся некоторые чаты). Каким макаром и из чего можно сделать клиента, который понимает, что соединение не закрыто? Пока что мне понятно только то, что надо как-то использовать потоки, поскольку Indy-компоненты на методе GET просто зависают, то есть ожидают окончания вывода :) ; надо бы получать по порциям вывод и писать его в какой-нибудь Memo. Заранее благодарен :)


Дмитрий   (2002-01-09 22:39:00) [1]

Ладно, пример
print "Content-Type: text/html\n\n";
print "<html><body><h1>Start</h1>";
$| = 1;
while (1) {
print "Continue<br>";
sleep(5);
}

# цикл и вывод продолжается, пока клиент не закроет броузер. В броузере каждые 5 сек. будет появляться новая строка. Проблема в том, чтобы сделать аналог.


Wonder   (2002-01-09 21:38:00) [2]

"так пишутся некоторые чаты"
Так это проблема клиента. Клиент с периодичностью, заданной сервером, начинает опрос сервера. Сервер по запросу клиента посылает данные. Либо обновленные, либо прежние.
Главное, что сервер в любом случаепосылает данные.


Наверх

Титульная страница Поиск, карта сайта Написать письмо