Une fois connecté au serveur, le client peut commencer des communications bidirectionnelles
avec l'hôte, par l'intermédiaire de son objet socket. Le serveur, sous la forme
d'un objet CustomerHostSocket, offre cinq fonctions au client :
o Lister tous les Clients suivis
o Ajouter un Client
o Modifier un Client
o
Requêtes de base : lister les Clients, sur le poste client
Supprimer un Client
o Déconnecter
La première partie de chaque communication déclenchée par le client avec
le serveur est un type de requête qui correspond à l’une des cinq fonctions de
base
L’application Customer Tracking est structurée de telle sorte que la saisie de
l’utilisateur, normalement communiquée en cliquant sur un bouton, amène la classe
CustomerListKeeper du client à demander l’une de ces cinq fonctions.
La première partie de chaque communication déclenchée par le client avec le serveur
est un type de requête qui correspond à l’une des cinq fonctions de base. Certains
types de requêtes ordonnent au serveur de lire et de traiter des informations
supplémentaires en provenance du flux de socket. D’autres types de requêtes demandent
au serveur de renvoyer des informations au client.
Les types de requêtes sont définis comme constantes de type entier dans les deux
classes CustomerListKeeper et CustomerHostSocket. La figure 5 résume les types
de requêtes et leurs actions associées.
Pour comprendre la relation entre les activités client et les types de requêtes,
examinons la méthode refresh et l’action RQS_LIST. Quand on clique sur le bouton
Refresh (un événement actionPerformed), la méthode refresh de la classe CustomerListKeeper
est exécutée. La méthode refresh communique avec le serveur pour obtenir une table
de hachage de tous les Clients suivis :
d_output.writeInt(RQS_LIST);
ObjectInputStream input =
new ObjectInputStream(
connection.getInputStream());
custList = (Hashtable)input.readObject();
En premier lieu, la constante RQS_LIST est écrite dans la file de sortie des données
socket. Côté serveur, le type de requête est lu et une table de hachage créée.
De retour côté client, un ObjectInputStream est construit sur le flux d’entrée
simple du socket. La classe ObjectInputStream fournit une méthode readObject qui,
dans ce cas, lit l’objet table de hachage créé par le serveur. Le client utilise
cette table de hachage pour suivre les Clients et comme référence croisée entre
ID et objets Clients suivis. La table de hachage sert également à construire la
liste visuelle des Clients suivis.
Exécuter l’application Pour exécuter l’application Customer Tracking avec VisualAge for Java (VAJ), il faut télécharger le code source à partir du site www.mysystemsjournal.com, l’importer dans VAJ et suivre ces instructions. Tout d’abord, créer la table base de données CUSTMAST dans une bibliothèque appelée EXAMPLES sur l’AS/400. On peut ensuite utiliser l’instruction SQL Create Table ou créer son propre membre source DDS comparable. CREATE TABLE EXAMPLES/CUSTMAST Modifier ensuite les constantes SYSTEM, USERID et PASSWORD dans la classe CustomerHostSocket. private static final String SYSTEM = Ces éléments d’information servent à se connecter à la base de données AS/400. Il reste quatre étapes : 1. Remplacer la constante HOST dans la classe CustomerListKeeper par l’adresse TCP/IP de l’AS/400. Cette information est utilisée pour connecter le client au serveur. Selon la configuration réseau, on peut utiliser soit l’adresse IP private static final String HOST = soit le nom de système de l’AS/400 private static final String HOST = 2. Créer un répertoire /myjava/examples/sockets dans l’IFS de l’AS/400. Placer les classes CustomerHostServer et CustomerHostSocket dans ce répertoire. Il est crucial de placer ces classes dans cette structure de répertoire exacte. 3. Démarrer la portion serveur de l’application à partir d’une ligne de commande OS/400 avec cette commande Run Java. JAVA Quand le serveur est prêt à accepter des connexions client, le message « Waiting… » s’affiche. 4. Démarrer la portion client de l’application à partir d’une vue de projet ou de package VAJ. Sélectionner la classe CustomerTracking puis faire un clic droit sur la classe. Choisir l’option Run, Run main dans le menu pop-up. Quand l’application cliente démarre, elle se connecte au serveur. Il faut attendre une connexion réussie et le message d’état » Connected. Press Refresh button to build list » dans la fenêtre du poste client. Quand on appuie sur le bouton Refresh, la liste des Clients suivis est construite, et le message d’état devient » Ready for action! » Si une erreur survient en un point quelconque, le message d’état dans la fenêtre client la signale. Ainsi, si vous essayez de démarrer le client avant le serveur, le message d’état » Connection refused » apparaît. A chaque fois qu’un client se connecte au serveur, ce dernier affiche l’adresse du client dans un message, comme » Starting connection to client at 130.1.0.16/130.1.0.16 » Ces messages permettent de savoir si les clients se connectent correctement au serveur. DD |
Téléchargez cette ressource
Préparer l’entreprise à l’IA et aux technologies interconnectées
Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.