Конференция "Сети" » ClientSocket [D7, WinXP]
 
  • Alex603081 © (06.02.08 03:36) [0]
    Помогите, пожалуйста, решить такую проблему:есть роутер, который подключен к компьютеру через обычную витую пару. Для того, чтобы на него зайти, я использую HyperTerminal. В нем я выбираю тип соединения TCP/IP (Winsock), ввожу IP, номер порта, нажимаю OK. Терминал с роутером соединяется и в окне терминала появляются 2 строчки: первая с названием роутера, вторая - "Login:".
    Я попытался написать программку, через которую можно было бы работать с этим роутером как через терминал (Сам HyperTerminal или аналоги не подойдут, т.к. в роутер надо отправлять данные, рассчитанные в программе).
    Нашел в интернете статью, в которой описана работа с ClientSocket. Взял оттуда пример, запустил.
    При установке соединения роутер присылает строку "ÿýÿý ÿý#ÿý'". Что я после этого не посылал в роутер, он молчит. Попробовал послать ему то,что он прислал мне, он ответил похожей тарабарщиной (ÿüÿü ÿü#ÿü'). Я ему это и отправил. Он прислал третью строку "ÿûÿýÿýÿûÿý!". Ее я тоже отослал ему назад. он прислал четвертую (ÿýÿûÿüÿþÿü!).
    И ее я отправил назад и только после этого он ответил "ÿþ", а потом почти как в терминале.отправляю логин, он присылает его обратно и сразу присылает запрос на пароль.Отправляю пароль, он присылает пустую строку и потом начинает примерно раз в секунду присылать код нуля. После ввода логина и пароля на роутере запускается скрипт, с которым моя программа и должна обмениваться данными. На мои запросы скрипт отвечает, но очень мешают пустые строки, которые идут от роутера.а в HyperTerminal е все нормально! при соединении он запрашивает логин, пароль и все. Дальше весь обмен идет со скриптом на роутере, без всяких лишних строк, кодов нулей и проч. Вопрос: что это за строки, которые предает роутер? Как они расшифровываются? Почему в терминале не появляется ничего лишнего?

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

    Буду ОЧЕНЬ благодарен за любую инфу по этому вопросу!
    P.S. прошу прощения за путанные объяснения проблемы.
  • Сергей М. © (06.02.08 08:33) [1]

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


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


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


    Он, скорее всего, ждет строку, завершающуюся символом возврата каретки (#13) и/или символом перевода строки (#10)
  • alex603081 © (06.02.08 09:02) [2]
    А что должен прислать в действительности ? Приведи то что при этом пишет терминал. Похоже на неверную интерпретацию тобой символьной кодировки в сроках при обмене с роутером.
    Терминал пишет:
    Mikrotik v3.1
    Login:

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

    В том и проблема, что я не знаю, что ему туда посылать...
    Когда я от него запроса логина добился, то и логин и пароль я завершал #10.
    Мне кажется, что эти первые строки - какие то настройки, в соответствии с которыми у роутера с компьютером и идет обмен информацией, но я не могу нигде найти, что там есть что.
  • Сергей М. © (06.02.08 09:14) [3]
    Приведи hex-дамп строки, которую ты получаешь при подключении и которая у тебя выглядит абракадаброй ...


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


    Быть того не может. Гипертерминалу никакие настройки не нужны, он их не передает и не ожидает, тем не менее успешно обменивается инф-цией с твоим устройством и столь же успешно показывает тебе эту инф-цию.
  • Сергей М. © (06.02.08 09:33) [4]
    Вообще странно, что роутер не предоставляет вэб-интерфейс для контроля и управления. Древний какой-то роутер..
  • Slym © (06.02.08 09:51) [5]
    Alex603081 ©   (06.02.08 3:36)
    yyyy yy#yy'"

    не правильно принимаешь... код приема в студию
  • Сергей М. © (06.02.08 10:00) [6]

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


    Угу. Это тоже не исключено.
    Поди беда с разыменованием указателя)
  • DVM © (06.02.08 10:31) [7]

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

    берешь терминал, снифер и вперед...
  • Alex603081 © (06.02.08 18:20) [8]
    Вот hex -дамп этиз строк в порядке получения

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

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

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


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

  • Slym © (07.02.08 05:07) [9]
    Это он опции терминала запрашивает... формате
    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 © (07.02.08 15:26) [10]
    Спасибо!
    А не подскажите, где можно найти полное описание этих опций?
  • ketmar © (07.02.08 15:43) [11]
    >[10] Alex603081 © (2008-02-07 15:26:00)
    google, rfc, telnet protocol.

    ---
    Understanding is not required. Only obedience.
  • ketmar © (07.02.08 15:43) [12]
    >[10] Alex603081 © (2008-02-07 15:26:00)
    google, rfc, telnet protocol.

    ---
    Understanding is not required. Only obedience.
  • Alex603081 © (07.02.08 16:06) [13]
    ОГРОМНОЕ ВСЕМ СПАСИБО!!!!
    Нашел протокол Telnet'а, разбираюсь...
 
Конференция "Сети" » ClientSocket [D7, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]