Examen DARE M1 Réseaux et Systèmes Distribués 2018 2019

Ce document est destiné aux étudiants de l'Université Constantine 2 Abdelhamid Mehri, Faculté des Nouvelles Technologies de l’Information et de la Communication, Département d’Informatique Fondamentale et ses Applications. Il s'agit d'une interrogation pour le cours de Réseaux et Systèmes Distribués (M1).

Il couvre les notions suivantes:

  • Gestion des threads en Java.
  • Utilisation de la classe InetAddress pour obtenir des informations sur les adresses IP.
  • Communication client-serveur en Java.

Examen DARE M1 Réseaux et Systèmes Distribués -Développement d'applications réparties

Télécharger PDF

Université Constantine 2 Abdelhamid Mehri

Faculté des Nouvelles Technologies de l’Information et de la Communication

Département d’Informatique Fondamentale et ses Applications

Date : 15 janvier 2019

Année : 2018/2019

Durée : 1h

Documents non autorisés

Nom et prénom ………………………………………..Groupe………. Note…………/20

Interrogation DARE – M1 Réseaux et Systèmes Distribués

Exercice 1 :

Soit le programme suivant :

class Classe1 extends Thread {
    public static int a = 0 ;
    public Classe1 () {
        a++ ;
        this.start() ;
    }
    public void run() {
        /* Faire un traitement */
        System.out.println(a) ;
    }
}
class Classe2 extends Thread {
    public static int b = 0 ;
    public Classe2 () {
        b++ ;
    }
    public void run() {
        /* Faire un traitement */
        System.out.println(b) ;
    }
}
class Main {
    public static int c = 10;
    public static void main(String[] args) {
        for(int i=0 ; i

Questions :

  1. Combien d’objets de type Classe1 et classe 2 ont été instanciés par le programme ?
  2. Combien de threads ont été lancés par le programme (avec précision) ?
  3. Quelle est la signification des variables a, b et c ?
  4. Enrichir la classe Classe1 afin qu’elle :
    • Affiche le nom du thread courant.
    • Affiche les informations du thread courant.
    • Affiche la priorité du thread courant.
    • Arrête le thread courant pendant 3 secondes.
  5. Quelles sont les modifications à apporter à la classe Classe2 si on utilise l’interface Runnable ?

Exercice 2 :

  1. Quelles sont les méthodes de la classe InetAdress qui permettent d’afficher :
    • L’adresse IP de la machine locale ?
    • Le nom de la machine locale ?
    • L’adresse IP du serveur Facebook ?
  2. Soit le programme suivant :
    public class Client {
        public static void main(String args[]) {
            try {
                Socket socketC = new Socket (.1.);
                PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter (.2.)), true);
                BufferedReader reader = new BufferedReader(new InputStreamReader(.3.));
                String requete = "je suis un client";
                writer.println(requete);
                String line = reader.readLine();
                System.out.println(line);
                writer.close();
                reader.close();
                socketC.close();
            } catch (Exception e) {e.printStackTrace(); }
        }
    }
    public class Classe extends Thread {
        Socket socketS ;
        public Classe (Socket socket) {
            this.socketS = socket ;
        }
        Public void run () {
            try {
                1. ………………………………………………………………………….
                2. ………………………………………………………………………….
                3. ………………………………………………………………………….
                4. ………………………………………………………………………….
                5. ………………………………………………………………………….
                BufferedReader reader = new BufferedReader(new InputStreamReader(.4.));
                PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter  (.5.)),true);
                String line = reader.readLine();
                String response = "Réponse du serveur";
                writer.println(response);
                reader.close();
                writer.close();
                socketS.close();
            } catch (Exception e) { e.printStackTrace(); }
        }
    }
    public class Server {
        public static void main(String args[]) throws Exception {
            (.6.)
        }
    }
            

Questions :

  1. Compléter le code de la classe Serveur à laquelle doivent se connecter les clients au point (.6.). Elle lance le thread Classe pour gérer de manière concurrente les clients. La machine du serveur s’appelle Server-RSD.
  2. Compléter les codes en ajoutant ce qui manque aux points (.1.) à (.5.) pour que le serveur et le client puissent communiquer.

Bon Courage

FAQ

1. Qu'est-ce qu'un thread en Java ?

Un thread en Java est une unité d'exécution indépendante qui permet de réaliser des tâches parallèles. Chaque thread a son propre flux de contrôle et peut exécuter des instructions simultanément avec d'autres threads.

2. Quelle est la différence entre extends Thread et implements Runnable ?

La différence principale réside dans la manière dont les threads sont créés et gérés. En utilisant extends Thread, on crée une sous-classe de Thread, tandis qu'avec implements Runnable, on crée une classe qui implémente l'interface Runnable et on passe une instance de cette classe à un objet Thread.

3. Comment obtenir l'adresse IP d'une machine locale en Java ?

Pour obtenir l'adresse IP d'une machine locale en Java, on peut utiliser la classe InetAddress avec la méthode getLocalHost().

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne