Назад | Перейти на главную страницу

Как явно указать опцию «скорость терминала» в родном telnet-клиенте GNU Linux?

Я хотел бы иметь возможность явно устанавливать параметр скорости терминала в собственном telnet-клиенте Linux GNU.

Некоторый контекст моей проблемы:

Я не могу войти на хост HPUX с помощью telnet когда процесс telnet создается программой Java.

Когда я подключаюсь к хосту HPUX по Telnet из командной строки (из bash), я могу войти в систему и использовать сеанс.

Когда я запускаю telnet-процесс из Java, происходит что-то странное. Мне предлагается ввести имя пользователя и отправить его. Я также получаю запрос на ввод пароля. Но почему-то telnet-сервер не ждет пароля; он завершает сеанс до его отправки.

Глядя на обмен в Wireshark, я вижу, что как только клиент telnet отправляет ACK для запроса пароля, сервер отправляет пакет FIN, завершая сеанс инициализации.

Одно из различий, которое я вижу в подтверждении связи до запроса пароля, заключается в том, что сервер запрашивает скорость терминала. При запуске telnet из командной строки скорость терминала, которую он отправляет, составляет 38400,38400. При запуске telnet с Java скорость терминала составляет 0,0.

Я предполагаю, что клиенту telnet нужен терминал, чтобы иметь возможность указывать скорость терминала, и я предполагаю, что, когда он запускается с Java, с процессом не связан tty. В зависимости от вашего варианта использования вы можете попробовать создать xterm и запустить telnet внутри него.

Если это неприемлемо, и вы не можете найти способ явно установить это с помощью клиента telnet GNU, вы можете попробовать использовать собственный API telnet Java, упомянутый другим автором, вместо создания внешнего процесса.

Вам нужно будет предоставить дополнительную информацию о java-клиенте telnet. Похоже, это собственный клиент, который является ключом к пониманию того, как изменить этот параметр.

Похоже, вам нужна программа эмуляции терминала (например, hyperterm в Windows) вместо клиента telnet. Может быть Гипер Терминал Java это то, что вы хотите.