La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

Présentations similaires


Présentation au sujet: "Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java"— Transcription de la présentation:

1 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Master 1 SIGLIS Ingénierie des réseaux Stéphane Tallard Chapitre 2 bis – Les sockets en Java Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

2 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Rappel : les sockets Les processus reçoivent /envoient des messages à travers la couche réseau La socket est une interface sur les services session définis par l’OS: Quand il émet, le processus utilise les services de transport définis par l’OS La couche de transport de l’OS convoie le message vers l’OS du processus recevant. L’API permet : Le choix du protocole de transport Le paramétrage de la communication Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

3 Le client socket TCP Lecture Ecriture Master 1 - SIGLIS
Instanciation de la socket Socket maSocket = new Socket(host , port ) ; Obtenir l’inputStream associé à la socket InputStream is = maSocket.getInputStream() Lire is.read() Traitement …. Fermer la socket maSocket.close() Instanciation de la socket Socket maSocket = new Socket(host , port ) ; Obtenir l’outputStream associé à la socket OutputStream os = maSocket.getOutputStream() écrire os.write(data) / os.flush() Fermer la socket maSocket.close() Host est de type String Port est de type entier Il y a une outputstream et une inputstream attachée à la socket Avec java.io on peut faire mieux ! Fermeture de la socket Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

4 Le serveur socket TCP Lecture Ecriture Master 1 - SIGLIS
Instanciation de la socket Socket maSocket = new SocketServer(host , port ) ; Attente d’une demande de connexion maSocket.accept() Obtenir l’inputStream associé à la socket InputStream os = maSocket.getInputStream() Lire os.read() Traitement …. Fermer la socket maSocket.close() Instanciation de la socket Socket maSocket = new SocketServer(port ) ; Attente d’une demande de connexion maSocket.accept() Obtenir l’outputStream associé à la socket OutputStream os = maSocket.getOutputStream() Ecrire os.write(data) / os.flush() Fermer la socket maSocket.close() Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

5 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Un serveur avec les sockets Si le serveur ne se termine pas après chaque traitement de requête, il faut le faire boucler à l’infini. Si le serveur peut traiter plusieurs requêtes à la fois : il faut utiliser des threads pour traiter chaque requête indépendamment Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

6 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Le package java.io Reader BufferedReader StringReader CharArrayReader InputStream FileInputStream ByteArrayInputStream ObjectInputStream PipedInputStream Writer BufferedWriter CharArrayWriter FileWriter PrintWriter OutputStream FileOutputStream ByteArrayOutputStream ObjectOutputStream PipedOutputStream TEXTE BINAIRE LECTURE ECRITURE InputStreamReader OutputStreamReader Pour lire du texte depuis une chaîne de caractères  StringReader Pour lire un flux binaire depuis un fichier  FileInputStream Pour écrire un objet dans un flux binaire  ObjectOutputStream Pour lire du texte de façon optimisée (en utilisant un buffer)  BufferedWriter OutputStreamReader et InputStreamreader permettent de convertir des données de texte en binaire Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

7 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Les classes d’interface de java.io LECTURE ECRITURE Reader int read() int read(char[] cbuf) void close() Writer void write(char[] cbuf) Void write(String str) Void write(int c) void close() TEXTE InputStream int read() int read(byte[] b) void close() OutputStream int write(int b) int write(byte[] b) void close() BINAIRE InputStream, OutputStream, Reader et Writer sont des interfaces Elles spécifient les méthodes que doivent implémenter leurs sous-classes. Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

8 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Le concept du décorateur Le decorateur est un « design pattern » : une forme de conception fréquente Le terme « Décorateur » désigne une forme de conception fréquente Un décorateur « décore » une classe Le décorateur en offre une interface adaptée au traitement que l’on doit faire en s’appuyant sur les services de la classe décorée. Classe Décorateur Classe Décorée Programmeur Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

9 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Exemple d’utilisation du pattern Decorator avec java.io FileReader fr = new FileReader("c:/Mes documents/User/monfichier.text") ; BufferedReader reader = new BufferedReader(fr) ; BufferedReader:reader FileReader:fr Programmeur Décorateur Classe décorée Le lien entre les deux objets est fait au moment de l’instanciation Dans l’exemple, BufferedReader optimise la lecture en utilisant un buffer de lecture. Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

10 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS java.io et les décorateurs Le pattern du décorateur permet de combiner les classes selon le traitement que l’on veut faire. On va l’utiliser pour les Sockets. Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

11 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Exercice Ecrire un client et un serveur echo le client envoie une chaîne de caractère au serveur et s’arrête Le serveur affiche la chaîne sur la console et s’arrête. Version 1 : Le client et le serveur sont sur la même machine Version 2 : Le client se lance en passant l’adresse Ip du serveur Version 3 : Le client se lance en passant l’adresse Ip ou le nom du serveur (faire des recherches sur la classe INetAdress). Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java

12 Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Master 1 - SIGLIS Projet La socket calculatrice Master 1 SIGLIS Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java


Télécharger ppt "Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java"

Présentations similaires


Annonces Google