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

Вниз

IdTelnet и получение ответов   Найти похожие ветки 

 
fishka   (2006-12-20 11:27) [0]

Использую компонет IdTelnet. В цикле посылаю команду (например, dir). Думаю, что после каждой команды должен быть ответ, т.е. должно происходить событие IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String); В данном событии данные буфера записываются в текстовый файл с именем, определяемым в цикле.
Но почему-то файл получается только после последненго прохода цикла.
Вопрос: почему не происходит событие IdTelnet1DataAvailable после посылки команды IdTelnet1.SendCh? И как сделать, чтобы после выполнения IdTelnet1.SendCh(CR) можно было получить данные, посланные сервером Telnet?


 
Сергей М. ©   (2006-12-20 11:43) [1]

Что за цикл ? Показывай ...


 
fishka   (2006-12-20 11:47) [2]

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("select distinct DNID, id_LES_region from DNID" );
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
var_dnid:="dnid "+ADOQuery1.FieldByname("DNID").AsString+" "+ADOQuery1.FieldByname("id_LES_region").AsString;
varr:="dir";
for i:=1 to length(varr) do
  begin
   IdTelnet1.SendCh(varr[i]);
  end;
   IdTelnet1.SendCh(CR);
 ADOQuery1.Next;
end;
ADOQuery1.Close;


 
Сергей М. ©   (2006-12-20 11:57) [3]

Понятно.

И зачем тут цикл по символам ком.строки ?
Посылай всю команду одним вызовом метода:

varr:="dir"#13;

IdTelnet1.SendStr(varr);

и тут же жди ответ сервера на команду:

IdTelnet1.ReadXXXX(...);

А еще лучше использовать метод SendCmd - он сочетает в себе и отправку команды и ожидание/получение рез-та ее выполнения.

Тогда и событие не нужно будет.



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

Форум: "Основная";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.041 c
15-1169438175
Slider007
2007-01-22 06:56
2007.02.11
С днем рождения ! 20 января


15-1169218809
oldman
2007-01-19 18:00
2007.02.11
Современная Гуманитарная Академия.


2-1169647027
DVM
2007-01-24 16:57
2007.02.11
Директивы условной компиляции


3-1163950706
REM02
2006-11-19 18:38
2007.02.11
D7 = IB 7.5 BLOB


15-1169373734
Expell
2007-01-21 13:02
2007.02.11
В чем причина?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский