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

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

TiDAntiFreeze; [D6, Win2k]


Страницы:   1 2

alt7 ©   (2003-05-21 18:06:00) 

Каков принцип работы?
Вот мне нужно использовать его в консольном приложении, где есть TiDTCPClient.Readln, то есть пока не прочтет инфу из сокета, то с места не сдвинется.

Что нужно написать, чтобы осталльная работа не стопорилась?
Некая такая конструкция имеется:

while true do
begin
<..>
TiDTCPClient.Readln;
<..>
WriteLn(buffer);
end;

Как заставить срабатывать WriteLn(Buffer независимо от того, пришли ли данные?)


alt7   (2003-05-22 11:26:00) [21]

Много чего. Но главное, что программа работает с системным временем, если пауза при ожидании ответа с сокета затягивается более чем на секунду, то программа уже работать будет неправильно.


Reindeer Moss Eater   (2003-05-22 11:22:00) [22]

Ты не понял.
А надо чтобы или проверка или по таймауту дальше работало

Что ты такое делаешь после возврата из ReadLn?


alt7   (2003-05-22 11:18:00) [23]

while true do
begin
<..>
TiDTCPClient.Readln;
<..>
WriteLn(buffer);
end;

Ну вот там где readln счас стопорится пока инфа не придет. А надо чтобы или проверка или по таймауту дальше работало. А я напишу потом проверку что-то типа if(buffer<>"") then ляляля...

1) Как написать проверку?
2) Как установить таймаут?


Reindeer Moss Eater   (2003-05-22 10:59:00) [24]

Что нужно написать, чтобы осталльная работа не стопорилась?
Сначала поведай, что хочешь получить в итоге.


alt7   (2003-05-22 10:57:00) [25]

Да, почитал что TIdAntiFreeze там не поработает ;)))
Да, или таймаут поставить около 0.01сек или делать проверку на наличие информации в буфере чтения..

Как?


Reindeer Moss Eater   (2003-05-22 10:03:00) [26]

В консольном приложении TiDAntiFreeze? Ну круто однако.
А зачем?

Как заставить срабатывать WriteLn(Buffer независимо от того, пришли ли данные?)

Ты имеешь ввиду читать с таймаутом <> бесконечность?


Страницы:   1 2

Наверх

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