Zouhair ELHADARI Centre de BTS Dakhla 2 ème année BTS DSI

Documents pareils
Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Programmation Internet en Java

Flux de données Lecture/Ecriture Fichiers

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Programmation Réseau SSH et TLS (aka SSL)

Programmation client-serveur sockets - RPC

Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

Le modèle client-serveur

Dis papa, c est quoi un bus logiciel réparti?

Projet de programmation (IK3) : TP n 1 Correction

Programmation Objet Java Correction

2 Chapitre 1 Introduction

Introduction à HTTP. Chapitre HTTP 0.9

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

PROGRAMMATION PAR OBJETS

Gestion distribuée (par sockets) de banque en Java

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Synchro et Threads Java TM

Cours 6 : Programmation répartie

Auto-évaluation Programmation en Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Développement Logiciel

Principes des Architectures Middleware version 2.0

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Programmer en JAVA. par Tama

LA COUCHE TRANSPORT CONTRÔLE LE FLOT DE DONNEES TRANSMISES par la couche Réseau

Le Modèle de Sécurité dans JAVA

Remote Method Invocation (RMI)

Introduction : les processus. Introduction : les threads. Plan

Corrigé des exercices sur les références

Un ordonnanceur stupide

OpenPaaS Le réseau social d'entreprise

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

TD3: tableaux avancées, première classe et chaînes

Java DataBaseConnectivity

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Programme Compte bancaire (code)

Une introduction à Java

Introduction au langage Java

TP, première séquence d exercices.

le minimum pour communiquer par réseau (sans toutefois y comprendre grand chose)

Environnements de développement (intégrés)

Serveur d'archivage 2007 Installation et utilisation de la BD exist

INITIATION AU LANGAGE JAVA

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

ACTIVITÉ DE PROGRAMMATION

Cours 14 Les fichiers

Plan du cours. Historique du langage Nouveautés de Java 7

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

RMI le langage Java XII-1 JMF

Remote Method Invocation Les classes implémentant Serializable

Protocole applicatif. Quel est le service de transport nécessaire à une application? Besoin en service de transport

Java Licence Professionnelle CISII,

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Premiers Pas en Programmation Objet : les Classes et les Objets

LOG4430 : Architecture logicielle et conception avancée

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Programmation avec des objets : Cours 7. Menu du jour

Architecture Orientée Service, JSON et API REST

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

OS Réseaux et Programmation Système - C5

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

PIGOURIER Vincent ANNEE SPECIALE 99/00 RAPPORT DE PROJET : LES THREADS JAVA. Responsable : Serge Rouveyrol

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

TP Programmation Java / JDBC / Oracle

Modèle à composants. Daniel Hagimont. IRIT/ENSEEIHT 2 rue Charles Camichel - BP TOULOUSE CEDEX 7. Remerciements

Chapitre 10. Les interfaces Comparable et Comparator 1

Traitement de données

INF 321 : mémento de la syntaxe de Java

Package Java.util Classe générique

Programmation système I Les entrées/sorties

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Maîtriser le menu contextuel dans un OfficeBean

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

Programmation réseau avec Java. 3/7 RMI, un peu de sécurité et CORBA

Langage à objets : JAVA (1)

Calcul Parallèle. Cours 5 - JAVA RMI

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

Intergiciel - concepts de base

M1 MIAGE - Réseau TP1

Interfaces graphiques avec l API Swing

Cours 1: Java et les objets

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

1. Langage de programmation Java

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Java et le temps réel

Java Licence professionnelle CISII,

Notes de cours Practical BigData

Création d une application JEE

Programmation Objet 2

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Transcription:

Développement d application client/serveur Zouhair ELHADARI www.hadari.jimdo.com Centre de BTS Dakhla 2 ème année BTS DSI

Chapitre 5 Programmation réseau en JAVA Prof:EL HADARI zouhair 2

Partie 1 : La programmation réseau en mode connecté (TCP) Prof:EL HADARI zouhair 3

La classe java.net.inetaddress Représente une adresse IP:utilisé par les classes Socket et DatagramSocket. 3 méthodes statiques pour la résolution DNS public static InetAddress getbyname(string hostname) throws UnknownHostException public static InetAddress[] getbyname(string hostname) throws UnknownHostException donne l adresse(s) de l hôte dont le DNS est passé en paramètre public static InetAddress getlocalhost() throws UnknownHostException donne l adresse de l hôte local Prof:EL HADARI zouhair 4

Exemple public static void main (String[] args){ try { InetAddress ad = InetAddress.getByName(" adresse.com"); System.out.println(ad); catch (UnknownHostException e) { System.out.println(" Could not find this web address. "); 5

La classe java.net.serversocket Coté serveur Crée le ServerSocket : ServerSocket S_server = new ServerSocket(port); attend les demandes de connexion et crée un socket pour le dialogue Socket S_service = S_server.accept(); récupère les flux d entrée et de sortie InputStream in = S_service.getInputStream(); OutputStream out = S_service.getOutputStream(); Prof:EL HADARI zouhair 6

La classe java.net.socket Coté client Crée le Socket : Socket S_client = new Socket(host,port); récupère les flux d entrée et de sortie InputStream in = S_client.getInputStream(); OutputStream out = S_client.getOutputStream(); Prof:EL HADARI zouhair 7

Exemples Prof:EL HADARI zouhair 8

Comment ouvrir un socket? (1) Dans un client Socket S_Client; try { S_Client = new Socket(Host, Port ); catch (IOException e) { System.out.println(" erreur"); Host: @ machine à laquelle veut se connecté le client Port: port sur lequel tourne le serveur

Comment ouvrir un socket? (2) Dans un serveur:création d un objet socket pour écouter et accepter les connexions des clients ServerSocket S_serveur; try { S_serveur = new ServerSocket(Port); catch (IOException e) {System.out.println("erreur"); Socket S_service = null; try { S_service = S_serveur.accept(); catch (IOException e) { System.out.println(«erreur");

Comment créer un Input Stream?(1) Côté client : pour recevoir une réponse du serveur InputStream input; try { input = S_Client.getInputStream( ); catch (IOException e) { System.out.println("erreur"); Rmq:Pour lire des lignes de texte, des entiers, des doubles,des caractères... ( read, readchar, readint, readdouble, and readline,. )

Comment créer un Input Stream?(1) Côté Serveur:pour recevoir les données d un client InputStream input; try { input = S_service.getInputStream( ); catch (IOException ex) { System.out.println ("erreur");

Comment créer un Output Stream?(1) Côté client : pour envoyer une information au serveur OutputStream out ; try {out = S_Client.getOutputStream( ); catch (IOException e) { System.out.println ("erreur"); Rmq:pour afficher des valeurs des types de base (write et println)

Comment créer un Output Stream?(2) Côté Serveur :Pour envoyer des informations au client OutputStream out ; try { out = S_service.getOutputStream( ); catch (IOException e) { System.out.println ("erreur");

Comment fermer un socket? Fermer les output et input stream avant le socket. Côté client output.close(); input.close(); S_Client.close(); Côté serveur output.close(); input.close(); S_service.close(); S_serveur.close();

Exemple d application: Client serveur très basique: un exemple de serveur qui accepte une connexion du client.il reçoit un entier puis renvoie au client (entier + 5). Prof:EL HADARI zouhair 16

import java.net.*; import java.io.*; public class ClientTCP { public static void main(string[] args) { try { Socket s_client = new Socket("localhost", 1800) OutputStream out = s_client.getoutputstream(); InputStream in = s_client.getinputstream(); out.write((int) Entier); System.out.println((char) in.read()); s_client.close (); catch (Exception e) {système.out.println( erreur ); Prof:EL HADARI zouhair 17

import java.net.*; import java.io.*; public class ServeurTCP{ public static void main(string[] args) { try { ServerSocket socket_ecoute = new ServerSocket(1800); Socket service = null; service = socket_ecoute.accept(); OutputStream out =service.getoutputstream(); InputStream out.write(in.read() + 5); service.close (); socket_ecoute.close( ); in =service.getinputstream(); catch (Exception e) { système.out.println( erreur ); Prof:EL HADARI zouhair 18

Gestion des Flux de données: une fois la connexion réalisée, il faut obtenir les streams d E/S (java.io) auprès de l instance de la classe Socket. Flux entrant obtention d un stream simple: InputSteam in = socket.getinputstream(); création d un stream convertissant les bytes reçus en char InputSteamReader reader = new InputStreamReader(in); création d un stream de lecture avec tampon: pour lire ligne par ligne dans un stream de caractères BufferedReader instream = new BufferedReader(reader); lecture d une chaîne de caractères String line = instream.readline(); Prof:EL HADARI zouhair 19

Gestion des Flux de données: Flux sortant obtention du flot de données sortantes : bytes OutputSteam out = socket.getoutputstream(); création d un stream convertissant les bytes en chaînes de caractères PrintWriter outstream = new PrintWriter(out); envoi d une ligne de caractères outstream.println( str ); envoi effectif sur le réseau des bytes (important) outstream.flush(); Prof:EL HADARI zouhair 20

Prof:EL HADARI zouhair 21

Fin de la 1 ère Partie Prof:EL HADARI zouhair 22

Partie 2: La programmation réseau en mode non-connecté (UDP).. A suivre Prof:EL HADARI zouhair 23