• Aucun résultat trouvé

M1 Programmation avanc´ee et r´epartie en Java : TP 7

N/A
N/A
Protected

Academic year: 2022

Partager "M1 Programmation avanc´ee et r´epartie en Java : TP 7"

Copied!
2
0
0

Texte intégral

(1)

M1 Programmation avanc´ee et r´epartie en Java : TP 7

Jean Fortin et Fr´ed´eric Gava

gava@u-pec.fr ou jean.fortin@gmail.com

1 Exercice 1

1. Cr´eer une classe Client, ayant comme champs priv´e un hˆote (de type String) et un port (de type int). Cr´eer le constructeur correspondant.

2. Dans cette classe, ajouter une m´ethodeconnecte, qui `a l’aide d’uneSocketse connecte au serveur correspondant `a l’hˆote et au port, puis ferme la socket. Afficher dans la console un message lorsque la connection est effectu´ee, et lorsqu’elle est ferm´ee.

3. Ajouter une m´ethode main pour tester votre classe, en vous connectant `a l’hote

”173.194.40.223” (google.fr) sur le port 80.

4. Dans la m´ethode connecte puis la lecture d’un message de type String depuis la socket, et l’afficher dans la console. Testez (normalement le String doit ˆetre vide).

2 Exercice 2

1. Cr´eer une classe ClientGUI, repr´esentant une fenˆetre comprenant un JLabel au centre, et unJTextFieldet deuxJButton(Envoyer et Connecter) au sud. (On pourra s’inspirer des interfaces r´ealis´ees dans les TPs pr´ec´edants). Ajouter une m´ethode main permettant de tester votre fenˆetre.

2. Ajouter un gestionnaire d’´evenement pour le bouton Connecter, qui se connecte `a un hˆote de la mˆeme fa¸con que pour l’exercice 1. (On rajoutera des champs priv´es pour l’hˆote et le port, et on adaptera le constructeur en cons´equence). Cette m´ethode ne doit pas fermer la connexion r´eseau. On enregistrera les flots d’entr´ee/sortie li´ees `a la socket dans des variables priv´ees de la classe.

3. Ajouter un gestionnaire d’´evenement pour le bouton “Envoyer”. Ce bouton doit en- voyer le texte entr´e par l’utilisateur via la Socket, lire un message en r´eponse, et l’afficher dans leJLabel.

4. Testez votre classe sur l’hote “173.194.40.223” (google.fr) sur le port 80 en envoyant le message “GET /\n”. Essayez des “PUT” et des “GET” du protocole HTTP en analysant les r´eponses du serveur.

3 Exercice 3

Le but de cet exercice est de r´ealiser un programme de messagerie instantann´ee. Afin de se concentrer sur l’aspect programmation r´eseau, une base de travail est fournie sur la page web des TPs, comprenant l’int´egralit´e de l’interface graphique, et deux classes `a compl´eter, Client et Serveur.

1

(2)

1. Compl´eter la classe Client.

On cr´eera les flots d’entr´ee sortie sur le mod`ele

out = new PrintWriter(sck.getOutputStream(), true);

out.println(message);

in = new BufferedReader(new InputStreamReader(sck.getInputStream()));

System.out.println(in.readLine());

2. Compl´eter les classes pour le Serveur

4 Exercice 4

On reprend l’exercice sur la calculatrice.

1. Cr´eer une classe ServerCalc qui accepte les connexions de typeSocket sur un port de votre choix. Pour chaque connexion, un thread est cr´e´e pour traiter le contenue de la connexion. Les messages seront du typenomDeFonction(comme sin, cos, etc.) puis un entier. La r´eponse sera bien sˆur l’´evaluation de la fonction sur l’entier.

2. Cr´eer une classe ClientCalc qui se connecte sur un ServerCalc. L’interface est comme celle de l’exercice 2 mais on supppose deuxJTextField, l’un pour la fonction l’autre pour l’entier ; La r´eponse du ServerCalcsera affich´ee sur leJLabel.

3. Testez votre code et si possible avec deux machines de la salle de TP.

4. Essayer maintenant que le client envoie un objet (qui sera serialis´e) contenant un entier (dans un champ “valeur”) ainsi qu’une m´ethode “int toEval(int arg)”. Le client choisira la fonction `a faire ´evaluer par le serveur (dans une liste Swing par exemple).

Construire l’objet dynamiquement. Le serveur, lui, doit de-s´erialiser le string re¸cu puis l’analyser pour trouver la valeur (si elle existe) ainsi que v´erifier l’existence et le type de la m´ethode “toEval” avant de r´e´ellement ´evaluer la demande du client.

5 Exercice 5

R´ealiser un jeu de Tic-Tac-Toe (morpion) en r´eseau. Le programme proposera `a l’utili- sateur de d´emarrer en mode client ou serveur.

2

Références

Documents relatifs

Cr´ eer une m´ ethode lancerThread (dans la classe principale) cr´ eant un Thread bas´ e sur le Runnable ci-dessus, et le d´ emarrant4. Dans une m´ ethode main, cr´ eer un objet de

1 M´ ethodes sp´ ecifiques aux Applets et qui leur permettent de demander au navigateur des informations ou des actions li´ ees au contexte : informations sur la page HTML

Dans le cas o` u vous utilisez un navigateur, forcez le rechargement de l’image (F5) car des param` etres de cache peuvent vous emp´ echer de voir les diff´ erences entre 2 ex´

Le fait que tout les objets d’une classe ne soient pas atteignable n’est pas suffisant pour d´ echarger une classe Chaque classloader poss` ede un cache de l’ensemble des

– ´ Ecrivez un code pour construire un Rapace qui h´ erite de Oiseau mais avec en plus la m´ ethode chasser.. Sans extends

Pour cela, on utilisera deux classes avec des m´ ethodes distantes, la classe Licencie et la classe Base.. D´ efinir une classe Licencie, ayant comme champs priv´ es un

Sur la base de cette revue, il a été recommandé d’aligner la rémunération des Administrateurs non exécutifs représentant ageas SA/NV dans les entités consolidées du Groupe Ageas

Ces sockets permettront de gérer des flux entrant et sortant afin d'assurer une communication entre les deux (le client et le serveur), soit de manière fiable à l'aide du