TP N°6: Construction d’un Serveur Multi-Client

Slides:



Advertisements
Présentations similaires
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Advertisements

POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Gestion et levée dexception. Une exception est un message envoyé par une méthode à une autre méthode. La méthode qui la reçoit a le choix de soccuper.
Programmation concurrente
Multi-Thread Jian-Yun Nie
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
Badr Benmammar Programmation concurrente et temps réel en Java Badr Benmammar
Cours 6 Interfaces, classes imbriquées (début). Chapitre IV Interfaces, classes imbriquées, Object.
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Les sockets.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Introduction à la programmation objet avec java
Architecture Client/Serveur
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Stéphane Frénot, Frédéric Laforest, Frédéric Le Mouël IJA 1 IJA – TD 8 Les threads en Java.
Présentation du projet JAVA Système de messagerie instantanée cryptée.
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
Frédéric Le Mouël, Stéphane Frénot, Frédérique Laforest, Tarak Chaari – Dpt TC JAV 1 JAV – TD 8 Les threads en Java.
Java. RMI - p. 1 C.Bac Java Remote Method Invocation Christian Bac Original Olivier Dedieu.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
Java – Réseau Eric Blaudez 06.
Communication client-serveur
Modèle objet : les classes
java : l'héritage (rappel)
Environnement de développement des BD
Programmation en C++ Héritage
Pas de variable globale
Les notions de classe et d'objet
Qu'est-ce que POSIX? Une librairie en langage C
TP N°2 : les Adresses IP *IP: Internet Protocol
OCA Java 7 Quiz A.
TP N°3 : Adressage IP Les classes IP
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
11ième Classe (Mardi, 18 novembre) CSI2572
Langages de programmation TP7
JAVA et POO : Notion d'héritage
Langages de programmation TP10
Simon Dadoun Interface WEB pour l'utilisation de GuineaPig++ sur la grille de PCs XtremWeb-HEP 8eme réunion codes de calcul accélérateur.
E) Constructeurs et héritage
Package traçable Tatiana Aubonnet.
Edit the text with your own short phrase. The animation is already done for you; just copy and paste the slide into your existing presentation. REPUBLIQUE.
Programmation Android GUI (widgets) et ressources
Développement d’une Application CORBA
Le Java premiers pas.
Les classes et les objets
Java : Socket et Réseaux
Langages de programmation TP11
Présentation SWING Siwar hadj hassen Omar ben yahya.
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
Exercice 1 Objectif : Définir une classe avec un constructeur et créer une instance de cette classe. La classe Habitation comprend les attributs : proprietaire.
Programmation Orientée Objet MMI 2ème année – S3
Schéma de conception Factory Method Exemple
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
INTERFACE ET POLYMORPHISME
© Robert Godin. Tous droits réservés.
Présentation Chaînage dynamique Retour sur les tableaux
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
Variables et accès en Java
© Robert Godin. Tous droits réservés.
Bases de données Singleton pour la connexion
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
TP N°4 Développement d’ une application
TP RC.
TP N°5: Partie I Programme Serveur.
Transcription de la présentation:

TP N°6: Construction d’un Serveur Multi-Client Les Threads en Java (Processus Légers)

Thread = un fil (d’exécution) Une méthode pour créer un thread en java, consiste à: Définir la tâche exécutée par le thread Lier la tâche au thread Lancer le thread

Classe Thread: un premier exemple Créer un nouveau projet ThreadExemples (Main Class Cochée)

Thread Principal

Créer un nouveau thread Définir la tâche du thread = Créer un objet Runnable Runnable est une interface public interface Runnable { public abstract void run(); } En fait, une interface est une classe abstraite dont toutes les méthodes sont abstraites et dont tous les attributs sont constants (des constantes, voir le mot-clé final). L'interface Runnable doit être implémentée par n'importe quelle classe dont les instances sont destinées à être exécutées par un thread. La classe doit définir une méthode sans argument appelée run. Navigate : go to source

Ajouter une classe «Tâche» dans le projet précédent : New / Java Class La tâche ici = Calcul le Produit de deux entiers

public class Tache implements Runnable { int x; int y; Tache(int x,int y) {this.x=x; this.y=y;} //Constructeur public void run(){ // Méthode run() System.out.println(Thread.currentThread().getName()); System.out.println(x+"*"+y+"="+x*y); } }

Dans le main: Runnable job = new Tache(5,6); Thread t = new Thread(job); t.setName("t1"); // Optionnel t.start();

Créer plusieurs threads: Ordre choisi par l’ordonnanceur de la JVM

Solution À l’arrivée d’un nouveau client, créer un nouveau thread Notre serveur peut prendre en charge plusieurs clients mais à tour de rôle: Solution À l’arrivée d’un nouveau client, créer un nouveau thread serveur Multi-client ( multi-threaded)

Créer un nouveau projet: Main Tâche du thread

Modifions le code du Serveur: ServerSocket svr = new ServerSocket(5000); while (true) { Socket sClient = svr.accept(); Runnable jobtodo = new TraitReq(sClient); Thread t = new Thread(jobtodo); t.start(); System.out.print ("Le Serveur a créé le thread"+t.getName()+"\n"); }

Traitement de la Requête Client Tâche du thread Traitement de la Requête Client

public class TraitReq implements Runnable { Socket client; TraitReq(Socket client) { this.client = client;} // Constructeur public void run() { // Copier Coller Try { DataInputStream Sin = new DataInputStream(client.getInputStream()); DataOutputStream Sout= new DataOutputStream(client.getOutputStream()); String ch; ch= Sin.readUTF(); while (!ch.equalsIgnoreCase("Fin")){ Sout.writeUTF(ch.toUpperCase()); ch = Sin.readUTF();} client.close();

Et Enfin … Lancer le Serveur Multi-Client Lancer plusieurs Clients Observer l’affichage dans la console côté Serveur