• 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

[email protected] ou [email protected]

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

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

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