Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ClientSocket [D7, WinXP]


Alex603081 ©   (2008-02-06 03:36:00) 

Помогите, пожалуйста, решить такую проблему:есть роутер, который подключен к компьютеру через обычную витую пару. Для того, чтобы на него зайти, я использую HyperTerminal. В нем я выбираю тип соединения TCP/IP (Winsock), ввожу IP, номер порта, нажимаю OK. Терминал с роутером соединяется и в окне терминала появляются 2 строчки: первая с названием роутера, вторая - "Login:".
Я попытался написать программку, через которую можно было бы работать с этим роутером как через терминал (Сам HyperTerminal или аналоги не подойдут, т.к. в роутер надо отправлять данные, рассчитанные в программе).
Нашел в интернете статью, в которой описана работа с ClientSocket. Взял оттуда пример, запустил.
При установке соединения роутер присылает строку "ÿý\x18ÿý ÿý#ÿý'". Что я после этого не посылал в роутер, он молчит. Попробовал послать ему то,что он прислал мне, он ответил похожей тарабарщиной (ÿü\x18ÿü ÿü#ÿü'). Я ему это и отправил. Он прислал третью строку "ÿû\x3ÿý\x1ÿý\x1Fÿû\x5ÿý!". Ее я тоже отослал ему назад. он прислал четвертую (ÿý\x3ÿû\x1ÿü\x1Fÿþ\x5ÿü!).
И ее я отправил назад и только после этого он ответил "ÿþ\x1", а потом почти как в терминале.отправляю логин, он присылает его обратно и сразу присылает запрос на пароль.Отправляю пароль, он присылает пустую строку и потом начинает примерно раз в секунду присылать код нуля. После ввода логина и пароля на роутере запускается скрипт, с которым моя программа и должна обмениваться данными. На мои запросы скрипт отвечает, но очень мешают пустые строки, которые идут от роутера.а в HyperTerminal е все нормально! при соединении он запрашивает логин, пароль и все. Дальше весь обмен идет со скриптом на роутере, без всяких лишних строк, кодов нулей и проч. Вопрос: что это за строки, которые предает роутер? Как они расшифровываются? Почему в терминале не появляется ничего лишнего?

Модель роутера, помоему, Mikrotik.

Буду ОЧЕНЬ благодарен за любую инфу по этому вопросу!
P.S. прошу прощения за путанные объяснения проблемы.


Alex603081   (2008-02-07 16:06:00) [1]

ОГРОМНОЕ ВСЕМ СПАСИБО!!!!
Нашел протокол Telnet'а, разбираюсь...


ketmar   (2008-02-07 15:43:00) [2]

>[10] Alex603081 © (2008-02-07 15:26:00)
google, rfc, telnet protocol.

---
Understanding is not required. Only obedience.


ketmar   (2008-02-07 15:43:00) [3]

>[10] Alex603081 © (2008-02-07 15:26:00)
google, rfc, telnet protocol.

---
Understanding is not required. Only obedience.


Alex603081   (2008-02-07 15:26:00) [4]

Спасибо!
А не подскажите, где можно найти полное описание этих опций?


Slym   (2008-02-07 05:07:00) [5]

Это он опции терминала запрашивает... формате
IAC DO ABC
FF FD 18  - DO TNO_TERMTYPE
FF FD 20  - DO TNO_TERM_SPEED
FF FD 23  - DO TNO_XDISPLOC
FF FD 27  - DO ХЗ

FF FB 03  - WILL TNO_SGA
FF FD 01  - DO TNO_ECHO


и так далее...
попробуй TIdTelnet, проще будет...


Alex603081   (2008-02-06 18:20:00) [6]

Вот hex -дамп этиз строк в порядке получения

> яэ\x18яэ яэ#яэ'            FF FD 18 FF FD 20 FF FD 23 FF FD 27
> яь\x18яь яь#яь'            FF FC 18 FF FC 20 FF FC 23 FF FC 27
> яы\x3яэ\x1яэ\x1Fяы\x5яэ! FF FB 03 FF FD 01 FF FD 1F FF FB 05 FF FD 21
> яэ\x3яы\x1яь\x1Fяю\x5яь! FF FD 03 FF FB 01 FF FC 1F FF FE 05 FF FC 21
> яю\x1                        FF FE 01 0D 0A
MikroTik v3.1

роутер не древний, для данной задачи как раз и нужен именно терминал.

Вот код приема


procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 form1.Memo1.Lines.Add('> '+Socket.ReceiveText);
end;


DVM   (2008-02-06 10:31:00) [7]


> В том и проблема, что я не знаю, что ему туда посылать..
> .

берешь терминал, снифер и вперед...


Сергей М.   (2008-02-06 10:00:00) [8]


> не правильно принимаешь


Угу. Это тоже не исключено.
Поди беда с разыменованием указателя)


Slym   (2008-02-06 09:51:00) [9]

Alex603081 ©   (06.02.08 3:36)
yy\x18yy yy#yy'"

не правильно принимаешь... код приема в студию


Сергей М.   (2008-02-06 09:33:00) [10]

Вообще странно, что роутер не предоставляет вэб-интерфейс для контроля и управления. Древний какой-то роутер..


Сергей М.   (2008-02-06 09:14:00) [11]

Приведи hex-дамп строки, которую ты получаешь при подключении и которая у тебя выглядит абракадаброй ...


> Мне кажется, что эти первые строки - какие то настройки,
>  в соответствии с которыми у роутера с компьютером и идет
> обмен информацией


Быть того не может. Гипертерминалу никакие настройки не нужны, он их не передает и не ожидает, тем не менее успешно обменивается инф-цией с твоим устройством и столь же успешно показывает тебе эту инф-цию.


alex603081   (2008-02-06 09:02:00) [12]

А что должен прислать в действительности ? Приведи то что при этом пишет терминал. Похоже на неверную интерпретацию тобой символьной кодировки в сроках при обмене с роутером.
Терминал пишет:
Mikrotik v3.1
Login:

Он, скорее всего, ждет строку, завершающуюся символом возврата каретки (#13) и/или символом перевода строки (#10)

В том и проблема, что я не знаю, что ему туда посылать...
Когда я от него запроса логина добился, то и логин и пароль я завершал #10.
Мне кажется, что эти первые строки - какие то настройки, в соответствии с которыми у роутера с компьютером и идет обмен информацией, но я не могу нигде найти, что там есть что.


Сергей М.   (2008-02-06 08:33:00) [13]


> роутер присылает строку "ÿý\x18ÿý ÿý#ÿý'"


А что должен прислать в действительности ? Приведи то что при этом пишет терминал. Похоже на неверную интерпретацию тобой символьной кодировки в сроках при обмене с роутером.


> Что я после этого не посылал в роутер, он молчит


Он, скорее всего, ждет строку, завершающуюся символом возврата каретки (#13) и/или символом перевода строки (#10)


Наверх

Титульная страница Поиск, карта сайта Написать письмо