Вопрос по sockets, ip, networking, tcpclient, telnet – Ответ на команду Telnet IAC

8

Я пытаюсь договориться о соединении telnet с сокетом. Сокет работает, но сервер говорит мне об этом:

<code>ÿýÿýÿûÿû

login:
</code>

ÿýÿýÿûÿû означает 255 253 1 255 253 31 255 251 1 255 251 3

Я прочитал все документы RFC, но я не понимаю, что я должен ответить, чтобы иметь возможность отправить (данные строки ascii?) На сервер, я хочу успешно запустить приглашение на вход в систему и затем отправить команды на сервер, такой как & quot ; прекращение & Quot; или что-то другое.

Заранее спасибо за ваш ответ.

Кстати: коды в посте выглядят поврежденными. 255 + 253 являются частью трехбайтовой последовательности (IAC + DO + option_number). Второй байт {251,252,253,254} - & gt; ожидайте, что последует третий байт. wildplasser
Я отредактировал свое сообщение! Cindy Broutin
Обычный клиент telnet (из командной строки) отключает IAC / согласование, если он не подключается к внешнему порту telnet. Коды IAC легко разбираются: в IIRC есть двухбайтовые и трехбайтовые последовательности. В большинстве случаев вы можете игнорировать все, кроме переключателя включения / выключения эха. Посмотрите это в RFC. wildplasser

Ваш Ответ

2   ответа
24

RFC 854:

Since the NVT is what is left when no options are enabled, the DON'T and WON'T responses are guaranteed to leave the connection in a state which both ends can handle. Thus, all hosts may implement their TELNET processes to be totally unaware of options that are not supported, simply returning a rejection to (i.e., refusing) any option request that cannot be understood.

То есть для каждогоWILL, реагироватьDONT, Для каждогоDO, реагироватьWONT.

В вашем случае вы получили (см.IANA назначил параметры Telnet):

255 253 1    IAC DO ECHO
255 253 31   IAC DO NAWS
255 251 1    IAC WILL ECHO
255 251 3    IAC WILL SUPPRESS-GO-AHEAD

Итак, вы должны ответить:

255 252 1    IAC WONT ECHO
255 252 31   IAC WONT NAWS
255 254 1    IAC DONT ECHO
255 254 3    IAC DONT SUPPRESS-GO-AHEAD

Обратите внимание, что вам не нужно знать, что на самом деле означает 1, 3 или 31. Это красота. Вы можете отказаться от этих вариантов, даже не зная их определения. Вы просто по умолчанию используете виртуальный сетевой терминал.

Это работает! Большое спасибо за ваш свет :) Cindy Broutin
1

255 253 1  IAC DO #1 
255 253 31 IAC DO #31
255 251 1  IAC WILL #1
255 251 3  IAC WILL #3

Теперь ищем значения параметров вВот: 1: = эхо, 31: = размер окна.

Похожие вопросы