Главная страница
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.018 c
2-1193743022
Reni
2007-10-30 14:17
2007.11.25
tmemorystream-> string?


15-1193068903
Ученик
2007-10-22 20:01
2007.11.25
Посоветуйте простой графический редактор сайтов


2-1193987162
Alex8
2007-11-02 10:06
2007.11.25
Набор полей в Query при 3-х таблицах


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


2-1193682578
mahab
2007-10-29 21:29
2007.11.25
Коррректная обработка загрузки испорченных изображений