Как отправить несколько строк информации на telnet'овский / AS400 хоста и читать полученный экран в структурированном формате в Java

голоса
0

Я пытаюсь разработать программу Java, которая может отправить несколько строк информации в телнете / AS400 хозяина, а затем получить в результате экрана в структурированном формате. Примером этого может быть регистрационные данные (пользователь, передача, библиотека и т.д.).

С телнетом / AS400, когда пользователь подключается к хосту с помощью командной строки, он отображает несколько строк, которые входные значения могут быть введены, и затем передаются на хост. Так:

команда

[взаимодействие

Как видно из примера, что можно отправить несколько строк информации на хост телнета с помощью командной строки Windows. Я хочу создать программу Java, которая имеет такую ​​же функциональность (отправка команды на несколько строк и чтение на экране в структурированном формате).

Я попытался с помощью клиента Telnet Apache для чтения экрана в использовании Apache Commons IOUtils. Так:

import java.io.IOException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.net.telnet.TelnetClient;
import examples.util.IOUtil;

 // This class requires the IOUtil support class!
public final class Telnet {

public static final void main(String[] args) {
    TelnetClient telnet;

    telnet = new TelnetClient();

    try {
        telnet.connect(hostname, 23);
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

 //   IOUtils
    IOUtil.readWrite(telnet.getInputStream(), telnet.getOutputStream(), System.in, System.out);

    try {
        telnet.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

    System.exit(0);
}

}

какие результаты в чтении экрана из InputStream, а затем отображать его. Так

[2J [1;22H[1m[0m [1m             Sign On             [0m [2;47H System  . . . . . :   NLSI5D   [3;47H Subsystem . . . . :   QINTER     [4;47H Display . . . . . :   QPADEV000Q [6;16H User  . . . . . . . 

С этого момента я не могу выбрать, какая линия я посылаю информацию обратно на. Более конкретно, если я печатаю в любой текст и отправить его обратно через консоль, она будет думать, что в поле имени пользователя. Я не могу указать любую другую строку или поле.

Можно выбрать то, что поле ввода строки вы отправляете информацию об использовании Java?

Причина, по которой должен быть в Java так, что я могу вставить его в приложение для Android.

Задан 02/12/2019 в 23:57
источник пользователем
На других языках...                            


1 ответов

голоса
0

Вы, вероятно , будете хотеть , чтобы ссылаться на проект TN5250J

Протокол, который нужно 5250 через Telnet. 5250 представляет собой протокол, используемый дисплей IBM I. Straight телнет отсутствует некоторые управляющие коды, ключи и услуги, предоставляемые 5250. Вы можете сделать телнет работу для простых экранов, но большинство из них не будет. ВТ-100 является плохой заменой 5250.

Ответил 03/12/2019 в 05:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more