Comment envoyer plusieurs lignes d'informations à l'hôte telnet / AS400 et lire l'écran résultant dans un format structuré en Java

voix
0

Je suis en train de développer un programme Java qui peut envoyer plusieurs lignes d'informations à un hôte telnet / AS400, puis recevoir l'écran résultant dans un format structuré. Un exemple de cela peut être des informations de connexion (utilisateur, passe, bibliothèque, etc.).

Avec telnet / AS400, lorsque les connecte l'utilisateur à l'aide de la commande hôte rapide, il affiche plusieurs lignes dont les valeurs d'entrée peuvent être entrés sur et ensuite envoyées à l'hôte. Comme ça:

commander

[l'interaction

On voit par l'exemple qu'il est possible d'envoyer plusieurs lignes d'informations à l'hôte telnet en utilisant la ligne de commande Windows. Je veux créer un programme Java qui a la même fonctionnalité (envoi des commandes sur plusieurs lignes et la lecture dans l'écran dans un format structuré).

Je l'ai essayé d'utiliser le client Telnet Apache pour lire l'écran en utilisant Apache Commons IOUtils. Comme ça:

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

}

ce qui aboutit à la lecture de l'écran à partir du InputStream puis l'afficher. Comme ça

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

De ce point, je ne peux pas choisir quelle ligne je renvoie l'information sur. Plus concrètement, si je tape dans un texte et de l'envoyer à travers la console, il pense qu'il est pour le champ nom d'utilisateur. Je ne peux pas spécifier une autre ligne ou d'un champ.

Est-il possible de choisir quelle ligne d'entrée champ que vous envoyez des informations sur l'utilisation de Java?

La raison pour laquelle il doit être en Java est pour que je puisse l'intégrer dans une application Android.

Créé 02/12/2019 à 23:57
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Vous allez probablement vouloir faire référence au projet TN5250J

Le protocole dont vous avez besoin est sur 5250 telnet. 5250 est le protocole d'affichage utilisé par IBM i. telnet droite manque certains codes de contrôle, les clés et les services fournis par 5250. Vous pouvez faire telnet travail pour les écrans simples, mais la plupart ne sera pas. VT-100 est un pauvre substitut à 5250.

Créé 03/12/2019 à 05:56
source utilisateur

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