Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Функция WaitFor в Indy.   Найти похожие ветки 

 
Новичек ©   (2007-11-02 13:04) [0]

Уважаемые Мастера, вот кусок кода:

 idtlnt1.Port := 20020;
 idtlnt1.Host := "10.10.110.14";
 idtlnt1.connect;
 idtlnt1.WaitFor("Userid:");
 idtlnt1.Write("It"s me" + #13#10);
 idtlnt1.WaitFor("Password:");
 idtlnt1.Write("Password" + #13#10);


где idtlnt1 - клиент телнета из библиотеки Indy (типа TIdTelnet).
Подскажите, пожалуйста, ну почему WaitFor не работает (прога висит бесконечно).
Спасибо.


 
Reindeer Moss Eater ©   (2007-11-02 13:26) [1]

function TIdTCPConnection.WaitFor(const AString: string): string;
//TODO: Add a time out (default to infinite) and event to pass data
//TODO: Add a max size argument as well.
//TODO: Add a case insensitive option
//TODO: Bug - returns too much data. Should only return up to search string adn not including
//      and leave the rest in the buffer.
begin
 Result := "";
 // NOTE: AnsiPos should be used here, but AnsiPos has problems if result has any #0 in it,
 // which is often the case. So currently this function is not MBCS compliant and should
 // not be used in MBCS environments. However this function should only be used on incoming
 // TCP text data as it is 7 bit.
 while Pos(AString, Result) = 0 do begin
   Result := Result + CurrentReadBuffer;
   CheckForDisconnect;
 end;
end;


 
umbra ©   (2007-11-02 13:30) [2]

если прога висит, значит ей не приходит то, чего она ждет


 
Новичек ©   (2007-11-02 13:32) [3]

Спасибо. Как я понял из ответа - хрен мне, а не WaitFor :)


 
Reindeer Moss Eater ©   (2007-11-02 13:38) [4]

const cstr = "userid:";
....
begin
while Pos("Userid:",cstr) = 0 do;
end;

Тоже "зависает". Странно, да?


 
Новичек ©   (2007-11-02 14:53) [5]

Ну, это понятно.
Я уже взял исходник телнета из Indy, пытаюсь перелопатить его.


 
Reindeer Moss Eater ©   (2007-11-02 15:01) [6]

Мда. Намек не понят.

Ты бы лучше уточнил, что именно приходит от сервера в качестве приглашения ввести юзерайди.
А то ты ждешь до упора одно, а оно уже пришло, но немного не такое как ты думаешь.


 
Новичек ©   (2007-11-02 16:32) [7]


> Reindeer Moss Eater

Переделал telnet-клиент от Indy. Работает, вроде. Правда, сокет я использовал стандартный API"шный, но мне так удобнее и проще работать.



Страницы: 1 вся ветка

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
15-1193238321
@!!ex
2007-10-24 19:05
2007.11.25
Проблемы с видухой.


15-1192777802
vajo
2007-10-19 11:10
2007.11.25
Игра ма-джонг


3-1183988425
Krants
2007-07-09 17:40
2007.11.25
Control cтолбцов для DBGrid


15-1193395304
Sour Smile
2007-10-26 14:41
2007.11.25
Стандартные заголовочные файлы


2-1194191628
bagos
2007-11-04 18:53
2007.11.25
динамический массив и процедура для работы с ним