Я хотел бы иметь возможность явно устанавливать параметр скорости терминала в собственном 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 это то, что вы хотите.