Jak poslat více řádků informací, které mají telnet / AS400 hostitele a číst obrazovku výsledkem strukturované podobě v Javě

hlasů
0

Snažím se vytvořit program v jazyce Java, který může poslat více řádků informací hostitele telnet / AS400, pak obdrží výslednou obrazovku ve strukturovaném formátu. Příkladem toho může být přihlašovací údaje (uživatelské, pass, knihovna, atd.)

S telnet / AS400, když se uživatel připojí k hostiteli pomocí příkazového řádku se zobrazí několik řádků, které vstupní hodnoty mohou být zadány a poté odeslány do hostitele. Takhle:

příkaz

[Příkaz

Vidíme z příkladu, že je možné odeslat více řádků informací hostitele telnet pomocí příkazového řádku Windows. Chci vytvořit program v jazyce Java, který má stejnou funkcionalitu (posílání příkazů na více řádků a čtení na obrazovce ve strukturované podobě).

Snažil jsem se pomocí klienta Telnet Apache číst obrazovku s používáním Apache Commons IOUtils. Takhle:

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

}

což vede k čtení obrazovky z InputStream a jeho zobrazení. Takhle

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

Od tohoto okamžiku nemohu vybrat, která linka pošlu informace zpět. Konkrétněji, když jsem zadat libovolný text a poslat jej zpět do konzoly, bude to, že to je pro pole uživatelské jméno. Nemohu určit jiný řádek nebo pole.

Je možné si vybrat, co pole linkový vstup, který vysílá informace o použití jazyka Java?

Důvod, proč to musí být v Javě tak, že mohu vložit jej do aplikace pro Android.

Položena 02/12/2019 v 23:57
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Nacházíte se pravděpodobně bude chtít odkazovat na projekt TN5250J

Protokol je třeba je 5250 přes telnet. 5250 je zobrazení protokol používaný IBM i. Straight telnet chybí určité kontrolní kódy, klíče a služby poskytované 5250. Můžete vytvořit telnet práci jednoduchých obrazovek, ale většina ne. VT-100 je špatnou náhražkou 5250.

Odpovězeno 03/12/2019 v 05:56
zdroj uživatelem

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