![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ESC and Telnet? [D3, D4, D5, D6, D7, Win95/98, Win2k, WinXP]
ZHK © (2003-08-14 15:38:00)
Есть проблема, а, может, не проблема. В общем, ситуация следующая: Есть компонент TIdTelnet. Связываюсь с сервером, все хорошо. Ввожу логин (в автомате), ввожу пароль (так же в автомате) Дальше идет бо-о-ольшая последовательность кодов, начинающихся с #27. Я, как бы, неоднократно слышал, а назаре 8086XT, даже использовал такие последовательности, но знания, боюсь, утеряны. самое обидное - что невосстановимы (в памяти). :-) Уважаемые мастера, может кто знает, что-же Telnet-ом по сети еще передается, помимо просто данных? Это еще не все. В процессе работы, а соединение у меня очень продолжительное, то есть, в идеале, бесконечное, с линии приходит сообщение "auto-logout" и после этого снова возникает строчка ESC-последовательностей, заканчивающаяся "swsh >", что, как я понял, означает начало передачи данных. И это еще не все. Принимая данные я, дабы всякая шушера в вывод не лезла, я отбрасываю все символы с кодом, меньшим #32, т.е. пробела. При этом, естественно, я отлавливаю #13, дабы определить конец строки. Но иногда, насколько я понял, но не уверен, у меня происходит повтор данных, передаваемых моей программе. В итоге получается, что получаемые данные несколько портятся, что не очень хорошо. Если мое наблюдение верно, то может кто подскажет, как определить начало и окончание автоповтора данных? Заранее благодарен за любую помощь в данном вопросе.
ZHK (2003-08-18 08:45:00) [1]
Конечно там все тоже самое. Один к одному. А за подсказку большое спасибо, попробую.
nikkie (2003-08-15 17:21:00) [2]
твой вопрос был
>что-же Telnet-ом по сети еще передается, помимо просто данных?
ответ - зависит от типа терминала.
как клиент и сервер договариваются о типе протокола, см здесь
http://www.faqs.org/rfcs/rfc884.html
если тебе эти esc-ы мешают, попробуй выставить IdTelnet.Terminal = "VT100".
Кстати, подключаясь с VT100 через гипертерминал, он понимает это все точно также, как и телнет. Вот.
один и тот же сервер может поддерживать разные телнет-терминалы. сделай лог сессии гипертерминала и посмотри есть ли там твои esc-ы, сравни начала сессий.
ZHK (2003-08-15 16:57:00) [3]
Да, кстати, вырезка из протокола - это начало последовательностей, перед этим идет нечто типа "Здравствуйте, получите, распишитесь..."
ZHK (2003-08-15 16:54:00) [4]
nikkie, понимаешь, в чем дело, esc-последовательности - это, как ты сам знаешь, стандарт. И кто их использует, в смысле какой протокол, это уже другой вопрос. Я связываюсь через виндовый телнет, для начала, как я собственно и получил информацию вместе с вопросами. Так вот, он все прекрасно понимает и не ругается. Кстати, подключаясь с VT100 через гипертерминал, он понимает это все точно также, как и телнет. Вот.
nikkie (2003-08-15 14:02:00) [5]
>Вот тебе кусок лога
а где его начало? вполне вероятно, что в начале клиент и сервер договариваются о типе терминала. терминалы-то разные бывают. для VT100 вроде никаких esc-последовательностей быть не должно, чистый текст. в каком-нибудь VT525 текст вполне может быть перемешан с esc-последовательностями. в TN5250 ты ASCII-текста вообще не увидишь.
wal (2003-08-15 12:45:00) [6]
Извиняюсь за кривую ссылку - html - слитно
wal (2003-08-15 12:44:00) [7]
Пол-пинка по рамблеру и вот результат:
http://www.sdteam.com/articles3/operating_systems/novelldos/ansi.sys.html
С уважением.
ZHK (2003-08-15 12:16:00) [8]
Знаешь, wal, я примерно так и понял, ибо я эти последовательности в молодости набирал и в файлы закладывал. Но вот информации по ним уже не осталось. Если бы ты подсказал, где их взять можно, я бы тебе просто премного благодарен. А за уважение спасибо тебе огромное. Я тоже тебя уважаю не меньше.
wal (2003-08-15 12:11:00) [9]
Похоже на Esc-последовалельности драйвера ansi.sys, который из-под ДОСа. Там они обожначали установку координат курсора, установку цветов и тому подобную лабудень. Но я могу и ошибаться :(
С уважением.
ZHK (2003-08-15 12:00:00) [10]
Никто меня не любит,
Никто не поцелует...
ZHK (2003-08-15 10:26:00) [11]
Парни, я знаю, что вам все известно. Поделитесь информацией!!!
ZHK (2003-08-14 16:59:00) [12]
Вот тебе кусок лога. Выделенные этим-[] участки на самом деле символы с соответствующим кодом:
[1B]7[1B][999;999H[1B][6n[1B]8[1B][?7h[1B]7[1B][3g[1B][1;1H[1B][8C[1B] H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1 B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C [1B]H[1B][8C[1B]H[1B][8C[1B]H[1B][8C[1B]H[1B]8[1B]>[1B][2J[1B][1;24r[1 B][1;1Hretrieve file initializing
nikkie (2003-08-14 16:46:00) [13]
когда у тебя проблемы, помогает IdLogDebug. покажи лог, тогда можно будет предметно разговаривать. в протоколе телнет возможны служебные команды, начинающиеся символом IAC (#255). никакого особого смысла в коде #27, насколько мне помнится, нет. но вероятно может иметь какой-то смысл для специального телнет протокола. а #13 ловить не хорошо, поскольку в юникс системах символ новой строки - #10.
ZHK (2003-08-14 16:34:00) [14]
Неужто неслыхал никто про сию проблему?