Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

Функция 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
2-1193773253
DevilDevil
2007-10-30 22:40
2007.11.25
Адрес вызова Exception-а. Помогите, пожалуйста.


2-1194020500
mufan
2007-11-02 19:21
2007.11.25
Неразрывный пробел и замена в тексте!


1-1189061309
tomkat
2007-09-06 10:48
2007.11.25
Переменные в Fastreport 3


15-1192964581
DVM
2007-10-21 15:03
2007.11.25
Опять анкета не найдена


2-1194234562
AlexanderMS
2007-11-05 06:49
2007.11.25
Сколько байт достаточно для хранения длины строки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский