Главная страница
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.02 c
15-1193108125
Slider007
2007-10-23 06:55
2007.11.25
С днем рождения ! 23 октября 2007 вторник


2-1194052753
kolj
2007-11-03 04:19
2007.11.25
Как динамически создать обьект на форме , например ListView ?


1-1188727240
Al500
2007-09-02 14:00
2007.11.25
TPanel - прорисовка


6-1174835725
Alek_1
2007-03-25 19:15
2007.11.25
Фаервол..с чего начать...??


2-1194086944
Riply
2007-11-03 13:49
2007.11.25
Конструкция record`а.