Главная страница
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-1193395304
Sour Smile
2007-10-26 14:41
2007.11.25
Стандартные заголовочные файлы


15-1193344929
Сусл
2007-10-26 00:42
2007.11.25
корпоративное решение от google


6-1174560382
zero
2007-03-22 13:46
2007.11.25
Проблема с компонентом idFtp


15-1193144154
Dennis I. Komarov
2007-10-23 16:55
2007.11.25
Интересно, сколько сейчас выживших (зарегистрированных) после


11-1178440374
Dy1
2007-05-06 12:32
2007.11.25
оптимизатор JPEG