TD - Java Clients-Serveur

Tous les programmes (sauf un) sont écrits en UTF8. Ils doivent être compilés avec l'option -encoding UTF8 de javac

Serveur convertisseur de texte en Majuscules

Les trois programmes suivants proviennent, à l'origine, de

Application Client

Application Serveur

Tester ces programmes entre 2 machines et sur des systèmes d'exploitation différents : Linux et Windows

Sous Windows, on lancera les programmes de la manière suivante :

Sous Linux, on pourra faire :

Tester en particulier, la mise en majuscule des caractères accentuées.

On pourra obtenir l'adresse locale (Nom de la Machine / numéro IP) par programmation java.

Il se peut que la mise en majuscule des caractères accentués (é à à ...) ne marche pas.

Cela peut être le cas si le serveur est lancé sous Linux et le client sous Windows.

Cela peut être aussi le cas si le serveur est lancé à partir d'un « xterm » et le client à partir d'un « terminal ».

Cela est du au fait que les codages des caractères lus sont différents.

Sous Linux, il est possible d'utiliser les variables d'environnement « LANG » et « LC-CTYPE » pour définir ou connaître le codage des caractères utilisés dans la fenêtre de commandes courante.

La commande « locale » permet de connaître le codage.

La commande « locale -a » permet d'obtenir la liste des langages

La commande « locale -m » permet d'obtenir la liste des codages

Il est aussi possible de tester dans le programme JAVA le langage et le codage, puis soit d'avertir l'utilisateur en cas d'anomalie, soit de convertir les caractères lus si besoin.

Ci-après un exemple pour récupérer la valeur de la variable d'environnement « LANG ».

Sous Windows, utiliser la commande ipconfig.exe sous l'interpréteur de commandes cmd.exe

Sous Windows, voir aussi pour la gestion des processus

Sous Linux et sous Windows essayer la commande ping pour tester la présence dans le réseau de la machine où se trouve le serveur.

Classe Repete.java

Ce programme permet de comprendre les Codecs de lecture et écriture, et en particulier celui de la console Windows

Classe GestionCodec.java

La méthode InitCodec de cette classe permet de régler les problèmes des accents avec Windows. Le Codec de la console IBM850 est différent de celui des applications graphiques de Windows Cp1252.

Elle sera utilisée dans les classes Client.java et Serveur.java

Clients / Serveur prenant en compte les accents

Tous les programmes sont codés en UTF-8. Ils détectent le Codec des fichiers d'entrée et sortie standards Le dialogue entre un client et le serveur s'effectue à l'aide de streams utilisant le Codec UTF-8.

Application Client

Application Serveur

Architecture Clients / Serveur de télé-discussion

Les cinq programmes suivants proviennent, à l'origine, de

Application Client

Application Serveur

Remarques

  • Le programme ServeurTD.java est un Fichier Texte UTF-8 contenant le mot Télé codé UTF-8
  • Le programme AppliClientTD.java est un fichier Texte WIN32 contenant le mot Télé codé ANSI
  • Le compilateur « javac » ne détecte pas automatiquement le format du fichier (WIN32 ou UTF-8)
  • Corriger le format du fichier qui produit une erreur de compilation
  • Compiler les programmes avec l'option -encoding UTF8 de javac

Sous Windows, on peut visualiser l'activité UDP et TCP avec

Liens JAVA