Wie mehrere Zeilen Informationen zu Telnet / AS400 Host senden und die daraus resultierenden Bildschirm in strukturierter Form in Java lesen

stimmen
0

Ich versuche, ein Java-Programm zu entwickeln, die mehrere Zeilen von Informationen an einen Telnet / AS400 Host senden können, dann den resultierenden Bildschirm in einem strukturierten Format. Ein Beispiel hierfür kann Anmeldedaten (Benutzer, Pass, Bibliothek, etc.) sein.

Mit telnet / AS400, wenn der Benutzer eine Verbindung mit dem Host über Eingabeaufforderung es mehrere Zeilen anzeigt, die die Eingangswerte auf eingegeben werden können und dann an den Host gesendet. So was:

Befehl

[Telnet-Befehl-Interaktion

Wir sehen aus dem Beispiel, dass es möglich ist, mehrere Zeilen von Informationen an die Telnet-Host unter Verwendung der Windows-Kommandozeile zu senden. Ich mag ein Java-Programm erstellen, die die gleiche Funktionalität (Befehle auf mehreren Linien und Lesen auf dem Bildschirm in einem strukturierten Format senden).

Ich habe versucht, den Apache-Telnet-Client mit dem Bildschirm in Apache Commons IOUtils zu lesen. So was:

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);
}

}

die Ergebnisse in den Bildschirm von der Input Lesen und Anzeigen es dann. So was

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

Von diesem Punkt kann ich nicht wählen, welche Linie ich sende auf Informationen zurück. Genauer gesagt, ist es, wenn ich in einem beliebigen Text eingeben und senden über die Konsole zurück, wird denken, es es für den Benutzernamen Feld ist. Ich kann keine andere Linie oder Feld angeben.

Ist es möglich, zu entscheiden, welche Feldeingabezeile Sie Informationen senden zur Verwendung von Java?

Der Grund, es muss in Java sein, ist so, dass ich es in eine Android-Anwendung einbetten kann.

Veröffentlicht am 02/12/2019 um 23:57
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Sie gehen zu wollen , wahrscheinlich das referenzieren TN5250J Projekt

Das Protokoll, das Sie benötigen, ist 5250 über Telnet. 5250 ist das Anzeigeprotokoll von IBM i eingesetzt. Gerade telnet fehlt bestimmte Steuercodes, Schlüssel und Dienstleistungen, die von 5250 zur Verfügung gestellt Sie können Telnet-Arbeit für einfache Bildschirme machen, aber die meisten nicht. VT-100 ist ein schlechter Ersatz für 5250.

Beantwortet am 03/12/2019 um 05:56
quelle vom benutzer

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