SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Chapitre 7 : Java et les réseaux


              La programmation réseau




                                        Java
© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0   1
Sommaire

          La programmation réseau

                  Rappel Réseau
                      Couches réseau et TCP-IP
                      Notion de Socket
                      Notion de Port
                  La classe URL
                  Les Sockets Java
                  TCP/IP et les principaux services
                  La classe InetAdress
                  Processus de Sockets
                  Exemple de process serveur
                  Exemple de process client simple et multi-clients
                  Datagram- Buffered stream- et Data Stream- sockets




© Rémy Courdier              1996-2009 - Java Réseau - Version du cours 3.0   2
Rappel couches réseau et TCP/IP




                                                           Source Christine Bulfone : Le client/Serveu©r et l’API socket


© Rémy Courdier   1996-2009 - Java Réseau - Version du cours 3.0                                                           3
Présentation de L’API Socket




                                                     Source Christine Bulfone : Le client/Serveu©r et l’API socket


© Rémy Courdier   1996-2009 - Java Réseau - Version du cours 3.0                                                     4
La notion de « socket »
          API (Application Program Interface) socket
              Mécanisme d'interface de programmation
              permet aux programmes dʼéchanger des données
              Les application ne voient les couches de communication quʼà travers
              lʼAPI socket (abstraction)
              n'implique pas forcément une communication par le réseau
               le terme « socket » signifie douille, prise électrique femelle

          Une connexion est entièrement définie sur chaque
          machine par :
              le type de protocole (UDP ou TCP)
              l'adresse IP
              le numéro de port associé
                  au processus serveur : port local sur lequel les connexions sont attendues
                  client : allocation dynamique par le système
                                                                  Source Christine Bulfone : Le client/Serveu©r et l’API socket

© Rémy Courdier         1996-2009 - Java Réseau - Version du cours 3.0                                                        5
La notion de « port »
          Un service rendu par un programme serveur sur une machine est
                                accessible par un port

          Un port est identifié sur une machine par un nombre entier (16 bits)

          de 0 à1023 :
              ports réservés assignés par l'IANA (Internet Assigned Numbers Authority)
              donnent accès aux services standard :




           > 1024
              ports utilisateurs disponibles pour placer un service applicatif quelconque
                                                                   Source Christine Bulfone : Le client/Serveu©r et l’API socket

© Rémy Courdier          1996-2009 - Java Réseau - Version du cours 3.0                                                        6
java.net
     La classe URL
     accès à une URL pour le Web                   /** la Classe java.net.URL :
       ://Hote[:port]/cheminDacces                 * encaps. Uniform Resource Locator
                                                   */
     getFile(), getHost(), getPort(),              public final class URL
     getProtocol(), getRef() retournent            extends Java.lang.Object
     les champs de l’URL                           implements serealizable
                                                   { ...
     Les données référencée par l’URL                 public final Object getContent()
     peuvent être téléchargée de 3                      throws IOException;
                                                      public URLConnection
     façons :                                           openConnection();
         par un objet URLConnection créé                throws IOException;
         par openConnection()                         public final InputStream
         par un objet InputStream créé par              openStream();
         openStream()                                   throws IOException;
                                                      public String toString();
         par l’appel à getContents() qui           }
         retourne directement le contenu                 try
      pour plus de contrôle utiliser la                    URL lt = new URL (“http://...”);
                                                         catch (MalformedURLException e) {
     classe URLConnection                                //...traitement d’erreur
         getContent-Length-Type-Encoding...              }



© Rémy Courdier        1996-2009 - Java Réseau - Version du cours 3.0                         7
java.net
     Sockets Java

     Sockets:                                               Utilité des “Datagram sockets”
         communication peer-ro-peer                              multicast :
         possède un nom et une adresse réseau                    envoi de paquets à un groupe (ex.
     Les types de sockets :                                      NetBios)
         Datagram sockets                                             Il existe une classe (java 1.1)
                                                                      MulticastSocket dérivée de
                  interface pour l’accès UDP (User
                                                                      DatagramSocket
                  Datagram Protocol)
                  transmissions de paquets                       broadcast :
                  indépendants “sans “ garantie                  envoi de paquets à l’ensemble
         Stream sockets                                          des entités d’un réseau
                  interface pour l’accès TCP                     situation de découverte :
                  (Transmission Control Protocol)
                                                                 découvrir des entités du réseaux,
                  guarantie de transmission...
                                                                 nouveau service disponible
         Raw sockets
                  interface au protocol IP (Internet
                                                                 messagerie non critique :
                  Protocol) ou ICMP (Internet Control            envoi de messages de contrôle
                  Message Protocol)                              d’activité non critiques “Je suis en
                  tests de nouveaux protocoles ou fcts           vie”
                  évoluées



© Rémy Courdier             1996-2009 - Java Réseau - Version du cours 3.0                              8
java.net
     TCP/IP et les principaux services




 Application       NIS
                    NIS   NFS
                           NFS




                                                                             TELNET

                                                                                       Etc...
                                                                            TELNET

                                                                                      Etc...
                                                             HTTP

                                                                     SMTP
                                              X11

                                                      FTP

                                                            HTTP

                                                                    SMTP
                                             X11

                                                     FTP
 Présentation         XDR
                       XDR

 Session
                                                                                                Sockets
                      RPC
                       RPC

 Transport                   UDP
                              UDP                                   TCP
                                                                     TCP

 Réseau                                       IP
                                               IP


 Liaison          Ethernet
                   Ethernet         FDDI
                                     FDDI           Token Ring
                                                     Token Ring             Etc...
                                                                             Etc...




© Rémy Courdier      1996-2009 - Java Réseau - Version du cours 3.0                                   9
java.net
     La classe InetAdress

     faire plus que télécharger un objet            /** la Classe InetAdress:
                                                    * encapsulation d’une adresse IP
     référencé par une URL.                         */
         écrire un serveur par exemple...           public final class InetAdress
     accès à une adresse sur TCP/IP                 extends Java.lang.Object
                                                    { // Methodes de classes
         Net_id.Host_id.Port_ID                          public static InetAdress
                  206.24.45.100                           getByName(String host)
                  “java.sun.com”                          throws UnknownHostException;
                                                         // ttes les @IP associées à un Host
     Cette classe permet de se                           public static InetAdress []
     connecter à un port d’un Host                        getAllByName(String host)
                                                          throws UnknownHostException;
     Internet et d’écrire/lire des                       public static InetAdress
     données des classes java.io.                         getLocalHost(String host)
                                                          throws UnknownHostException;
     Pas de constructeur                                 // Méthodes d’instances
         utilisation de getLocalHost(),                  public boolean equals (Object obj);
         getByName() ou getAllByName()                   public byte[] getAdress();
                                                         public getHostName();
     tests sans le réseau...                             public hashCode();
       //retourn le “localhost”                          public String toString();
       addr = InetAddress.getByName(null);          }



© Rémy Courdier          1996-2009 - Java Réseau - Version du cours 3.0                    10
Processus de Sockets




                                                           Source Christine Bulfone : Le client/Serveu©r et l’API socket


© Rémy Courdier   1996-2009 - Java Réseau - Version du cours 3.0                                                      11
java.net
     Processus de Sockets - 1

        creation et initialisation d’une                   Socket()
                                                            Socket()   Serveur
        “Socket” : appel de socket(...)


                  Socket()
                   Socket()




                  Client




© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0             12
java.net
     Processus de Sockets - 2

        Établissement d’un service sur un                  Socket()
                                                            Socket()   Serveur
        port de la machine serveur pour
        être visible du réseau : bind(...)                  bind()
                                                             bind()


                  Socket()
                   Socket()




                  Client




© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0             13
java.net
     Processus de Sockets - 3

        attente de connexions, le serveur                  Socket()
                                                            Socket()      Serveur
        est prêt : appel de listen(...)
                                                            bind()
                                                             bind()


                  Socket()
                   Socket()                                listen()
                                                            listen()




                                             un serveur “Datagram sockets”
                                              un serveur “Datagram sockets”
                  Client                     n’utilise pas de listen() ::ililn’y a
                                              n’utilise pas de listen()       n’y a
                                             pas de déroulement de sessions
                                              pas de déroulement de sessions




© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0                  14
java.net
     Processus de Sockets - 4

        Un Client initialise une connexion à               Socket()
                                                            Socket()     Serveur
        un service : appel de connect()
                                                            bind()
                                                             bind()


                  Socket()
                   Socket()                                listen()
                                                            listen()

                                             session
                  connect()
                   connect()                               accept() création
                                                            accept()
                                               TCP                   thread

                  Client                                   accept()
                                                            accept()
                                                        attente client
                                                            suivant


 un serveur “Datagram
  un serveur “Datagram                    Le serveur accepte la connexion
 sockets” n’utilise pas
  sockets” n’utilise pas                   accept() et déclenche un nouveau
 de accept()
  de accept()                              processus pour prendre en compte le
                                           client
© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0               15
java.net
     Processus de Sockets - 5

     le client et le serveur échangent leurs               Socket()
                                                            Socket()       Serveur
     données : en général par des read() et
     write() dans un objet Stream                         “Datagram sockets” utilise
                                                            bind()
                                                           “Datagram sockets” utilise
                                                             bind()
                                                          send() et receive() plutôt que
                                                           send() et receive() plutôt que
                  Socket()
                   Socket()                               read() et write()
                                                           listen() write()
                                                           read() et
                                                            listen()

                                             session
                  connect()
                   connect()                               accept() création
                                                            accept()
                                               TCP                   thread

                  Client                                   accept()
                                                            accept()
                                                        attente client
                                                            suivant
                   write()
                    write()                                                 read()
                                                                             read()
                                         nbXLab
                   read()
                    read()                                                 write()
                                                                            write()
                                           50

                   close()
                    close()                                                close()
                                                                            close()

© Rémy Courdier       1996-2009 - Java Réseau - Version du cours 3.0                        16
java.net
     Processus de Sockets - 6
        fermeture du Socket : les sockets sont
        des ressources limitées et doivent être             Socket()
                                                             Socket()     Serveur
        fermées par les deux parties cliente et
        serveur                                              bind()
                                                              bind()


                   Socket()
                    Socket()                                listen()
                                                             listen()

                                              session
                  connect()
                   connect()                                accept() création
                                                             accept()
                                                TCP                   thread

                  Client                                    accept()
                                                             accept()
                                                         attente client
                                                             suivant
                   write()
                    write()                                               read()
                                                                           read()
                                          nbXLab
                    read()
                     read()                                               write()
                                                                           write()
                                            50

                   close()
                    close()                                               close()
                                                                           close()

© Rémy Courdier        1996-2009 - Java Réseau - Version du cours 3.0                17
java.net
     Exemple de serveur

/** un serveur tres simple qui renvoie ce                     PrintWriter out =
* qu’il reçoit : serveur miroir                                 new PrintWriter(
*/                                                                 new OutputStreamWriter(
import java.io.*;                                                     socket.getOutputStream()));
import java.net.*;                                            while (true) {
public class ServerMiroir {                                     String str = in.readLine();
// Choisir un no de port non entre 1-1024                       if (str.equals("END")) break;
  static final int port = 8080;                                 System.out.println
  public static void main(String[] args ) {                        ("Echoing: " + str);
  try {                                                         out.println(str);
    ServerSocket s = new ServerSocket(port);                    out.flush(); // Ne pas oublier!
    System.out.println("Serv Started: " + s);                 }
    // Blocks until a connection occurs:                      System.out.println("closing...");
    Socket socket = s.accept();                               socket.close();
    System.out.println(                                     } catch(Exception e) {
      "Connect. accepted, socket: "+ socket);                   e.printStackTrace();
    BufferedReader in =                                     }
      new BufferedReader(                               }
        new InputStreamReader(                      }
                   socket.getInputStream()));


© Rémy Courdier         1996-2009 - Java Réseau - Version du cours 3.0                         18
java.net
      Exemple de process serveur

 /** un serveur tres simple qui renvoie ce            PrintWriter out =
 * qu’il reçoit : serveur miroir                        new PrintWriter(
 */                                                        new OutputStreamWriter(
 import java.io.*;                                            socket.getOutputStream()));
                                                                    sinon le buffer
                                                                     sinon le buffer
 import java.net.*;                                   while (true) {n’est pas écrit
 public class ServerMiroir {          Pas d’@ IP :                   n’est pas écrit
                                                        String str = in.readLine();
                                       Pas d’@ IP :                   sur le réseau
                                                                       sur le réseau
 // Choisir un no de port entre 1-1024exécuté sur
                                      exécuté sur       if (str.equals("END")) break;
                                                                   tant qu’il n’est
   static final int port = 8080;       la machine                   tant qu’il n’est
                                                        System.out.println plein
                                        la machine                      pas plein
                                                                         pas
   public static void main(String[] argscourante
                                          ) {              ("Echoing: " + str);
                                         courante
   try {                                                out.println(str);
 Représente
  Représente s = new ServerSocket(port);
     ServerSocket                                       out.flush(); // Ne pas oublier!
la connection
 la System.out.println("Serv Started: " + s);
     connection                                       }
     // Blocks until a connection occurs:             System.out.println("closing...");
     Socket socket = s.accept();                      socket.close();
     System.out.println(                            } catch(Exception e) {
       "socket: "+ socket);                             e.printStackTrace();
     BufferedReader in =                            }
       new BufferedReader(
                                                  appel automatique à toString()
                                                  }appel automatique à toString()
         new InputStreamReader(                 }     socket: [addr=207.0.0.1,
                                                       socket: [addr=207.0.0.1,
                    socket.getInputStream()));       port=1077, localport=8080]
                                                      port=1077, localport=8080]

 © Rémy Courdier         1996-2009 - Java Réseau - Version du cours 3.0                19
java.net
     Exemple de process Client

/** Un client tres simple qui envoie n                    DataInputStream in =
* lignes au serveur et lit n ligne                          new DataInputStream(
*/                                                            new BufferedInputStream(
import java.io.*;                                                socket.getInputStream()));
import java.net.*;                                        PrintStream out =
public class ClientMiroir {                                 new PrintStream(
  static final int port = 8080;                               new BufferedOutputStream(
  public static void main(String args[]) {                       socket.getOutputStream()));
  try {                                                   for(int i = 0; i < 10; i ++) {
  // Passing null to getByName() produces the               out.println("howdy " + i);
  // special "Local Loopback" IP address, for               out.flush(); // Ne pas oublier
  // testing on one machine w/o a network:                  String str = in.readLine();
  InetAddress addr =                                        System.out.println(str);
    InetAddress.getByName(null);                          }
  // On aurait pu utiliser l’adresse ou                   out.println("END");
  // le nom de façon équivalente                          out.flush(); // Ne pas oublier!
  // InetAddress.getByName("127.0.0.1");                  socket.close();
  // InetAddress.getByName("localhost");                } catch(Exception e) {
  System.out.println("addr = " + addr);                   e.printStackTrace(); }
  Socket socket = new Socket(addr, port);               }
  System.out.println("socket = " + socket);         }


© Rémy Courdier         1996-2009 - Java Réseau - Version du cours 3.0                         20
java.net
     Gestion de plusieurs clients pour le serveur

import java.io.*; import java.net.*;              public class MultiServerMiroir {
class ServerMiroir extends Thread { private         static final int port = 8080;
  Socket socket;
                                                    public static void main(String[] args )
  private BufferedReader in;
                                                    {
  private PrintWriter out;
                                                    try {
  ServerMiroir (Socket s) {
    socket = s;                                       ServerSocket s = new
    try { in = new BufferedReader( new ...);              ServerSocket(port);
          out = new PrintWriter( new...);             System.out.println("Serv. Started");
    } catch(IOException e) {...}                        while(true) {
    start(); // Calls run()                               // Bloque jusqu’a connexion
  }                                                       Socket socket = s.accept();
  public void run() {                                     new ServerMiroir(socket);
    try {                                               }
      while (true) { //lire s = in.readLine}
                                                      } catch(Exception e) {
      System.out.println("closing...");
                                                        e.printStackTrace();
      in.close(); out.close();
                                                      }
      socket.close();
    } catch (IOException e) { ... }                 }
  }                                               }
}



© Rémy Courdier         1996-2009 - Java Réseau - Version du cours 3.0                   21
java.net
     Datagram- Buffered stream- et Data Stream- sockets


                                                Datagram      Buf.Stream   DataStream   CORBA
       fiabilité de la communication              Non             Oui         Oui        Oui

       Paramètres typés                           Non             Non         Oui        Oui

       performances                           très bonne         bonne     mauvaise     bonne
                                                1,8 ms            2 ms      301 ms      3,2 ms
       Sécurité                                  Oui              Oui        Oui         Oui

       Desciptions d’Interface                    Non             Non         Non        Oui



       Les sockets fournissent un moyen de bas niveau pour
       la programmation réseau

       La programmation d’une appli. Client/Serveur doit y
       plutôt s’appuyer sur CORBA IIOP et Java RMI

© Rémy Courdier           1996-2009 - Java Réseau - Version du cours 3.0                       22

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Reseau
ReseauReseau
Reseau
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
 
Introduction aux-sockets
Introduction aux-socketsIntroduction aux-sockets
Introduction aux-sockets
 
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
 
Les socket ing1_issat
Les socket ing1_issatLes socket ing1_issat
Les socket ing1_issat
 
Sockets
SocketsSockets
Sockets
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Remote method invocation
Remote method invocationRemote method invocation
Remote method invocation
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
Java RMI
Java RMIJava RMI
Java RMI
 
Liaison modbus wago_atv_31
Liaison modbus wago_atv_31Liaison modbus wago_atv_31
Liaison modbus wago_atv_31
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
Rpc 4bypage
Rpc 4bypageRpc 4bypage
Rpc 4bypage
 
Bah mamadou hady
Bah mamadou hadyBah mamadou hady
Bah mamadou hady
 

Destacado

Universal Sleeve's new product catalog (Bu Sleeves)
Universal Sleeve's new product catalog (Bu Sleeves)Universal Sleeve's new product catalog (Bu Sleeves)
Universal Sleeve's new product catalog (Bu Sleeves)Jose Giraldez
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Fabien Potencier
 
Marchés publics vs qualité
Marchés publics vs qualitéMarchés publics vs qualité
Marchés publics vs qualitéFEANTSA
 
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en Français
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en FrançaisFROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en Français
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en FrançaisAdvansolar
 
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...Maroc Telecom
 
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...contactOpinionWay
 
Bereich Qualität
Bereich QualitätBereich Qualität
Bereich QualitätBITE GmbH
 
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014contactOpinionWay
 
Semana%20del%20psicologo%202010[2]
Semana%20del%20psicologo%202010[2]Semana%20del%20psicologo%202010[2]
Semana%20del%20psicologo%202010[2]gizquierdoj
 
Une collection de résidences en constante évolution
Une collection de résidences en constante évolutionUne collection de résidences en constante évolution
Une collection de résidences en constante évolutionEurotelGroup France
 
Cargador de pilas
Cargador de pilasCargador de pilas
Cargador de pilasraul12389
 
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014 Kit Smartphones Entreprises chez Maroc Telecom - Février 2014
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014 Maroc Telecom
 
Estrategias de Aprendizaje
Estrategias de AprendizajeEstrategias de Aprendizaje
Estrategias de AprendizajeEdgar Linares
 
Dicertacion cip
Dicertacion cipDicertacion cip
Dicertacion cipCok391
 

Destacado (20)

Correction hrimech
Correction hrimechCorrection hrimech
Correction hrimech
 
Universal Sleeve's new product catalog (Bu Sleeves)
Universal Sleeve's new product catalog (Bu Sleeves)Universal Sleeve's new product catalog (Bu Sleeves)
Universal Sleeve's new product catalog (Bu Sleeves)
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
 
Marchés publics vs qualité
Marchés publics vs qualitéMarchés publics vs qualité
Marchés publics vs qualité
 
Wine Brand Scan
Wine Brand ScanWine Brand Scan
Wine Brand Scan
 
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en Français
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en FrançaisFROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en Français
FROST & SULLIVAN 'New Product Innovation Leadership Award' - Rapport en Français
 
Lamper
LamperLamper
Lamper
 
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...
Catalogue tarifaire des offres Segments Particuliers & Professionnels Edition...
 
Formateo
FormateoFormateo
Formateo
 
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...
OpinionWay pour Choisir.com : Les français et les sites comparateurs / Novemb...
 
Bereich Qualität
Bereich QualitätBereich Qualität
Bereich Qualität
 
X10 Grafische Vormgeving
X10 Grafische VormgevingX10 Grafische Vormgeving
X10 Grafische Vormgeving
 
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014
Opinionway pour Clai - Metronews - LCI / Questions d’actualité / Octobre 2014
 
Semana%20del%20psicologo%202010[2]
Semana%20del%20psicologo%202010[2]Semana%20del%20psicologo%202010[2]
Semana%20del%20psicologo%202010[2]
 
Tarea 4
Tarea 4Tarea 4
Tarea 4
 
Une collection de résidences en constante évolution
Une collection de résidences en constante évolutionUne collection de résidences en constante évolution
Une collection de résidences en constante évolution
 
Cargador de pilas
Cargador de pilasCargador de pilas
Cargador de pilas
 
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014 Kit Smartphones Entreprises chez Maroc Telecom - Février 2014
Kit Smartphones Entreprises chez Maroc Telecom - Février 2014
 
Estrategias de Aprendizaje
Estrategias de AprendizajeEstrategias de Aprendizaje
Estrategias de Aprendizaje
 
Dicertacion cip
Dicertacion cipDicertacion cip
Dicertacion cip
 

Similar a Chap7 java net

6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdfAliouDiallo24
 
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdfChapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdfYoussefJamma
 
programmation réseau en java
programmation réseau en java programmation réseau en java
programmation réseau en java Ezéquiel Tsagué
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfSouf212
 
Chapitre 3 Comprendre la notion de socket.docx
Chapitre 3 Comprendre la notion de socket.docxChapitre 3 Comprendre la notion de socket.docx
Chapitre 3 Comprendre la notion de socket.docxKoffi Kanga
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
173544 introduction-aux-sockets
173544 introduction-aux-sockets173544 introduction-aux-sockets
173544 introduction-aux-socketsnaimanaima1
 
cours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdfcours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdfSophie569778
 
Cisco discovery-module-final-v4
Cisco discovery-module-final-v4Cisco discovery-module-final-v4
Cisco discovery-module-final-v4r2ch
 
Coursrseaux 111019081618-phpapp01
Coursrseaux 111019081618-phpapp01Coursrseaux 111019081618-phpapp01
Coursrseaux 111019081618-phpapp01Fabrice Enock
 
Architecture Décentralisée
Architecture DécentraliséeArchitecture Décentralisée
Architecture Décentraliséeparigot
 
Deploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfDeploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfmerazgaammar2
 

Similar a Chap7 java net (20)

Chap7_JavaNet.pdf
Chap7_JavaNet.pdfChap7_JavaNet.pdf
Chap7_JavaNet.pdf
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
 
6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf
 
module_I6_Sockets.pdf
module_I6_Sockets.pdfmodule_I6_Sockets.pdf
module_I6_Sockets.pdf
 
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdfChapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
JavaRMI.pdf
JavaRMI.pdfJavaRMI.pdf
JavaRMI.pdf
 
programmation réseau en java
programmation réseau en java programmation réseau en java
programmation réseau en java
 
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdfRAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
 
Chapitre 3 Comprendre la notion de socket.docx
Chapitre 3 Comprendre la notion de socket.docxChapitre 3 Comprendre la notion de socket.docx
Chapitre 3 Comprendre la notion de socket.docx
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
173544 introduction-aux-sockets
173544 introduction-aux-sockets173544 introduction-aux-sockets
173544 introduction-aux-sockets
 
cours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdfcours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdf
 
Cisco discovery-module-final-v4
Cisco discovery-module-final-v4Cisco discovery-module-final-v4
Cisco discovery-module-final-v4
 
Coursrseaux 111019081618-phpapp01
Coursrseaux 111019081618-phpapp01Coursrseaux 111019081618-phpapp01
Coursrseaux 111019081618-phpapp01
 
Cours réseaux
Cours réseauxCours réseaux
Cours réseaux
 
Architecture Décentralisée
Architecture DécentraliséeArchitecture Décentralisée
Architecture Décentralisée
 
Etude de la WIFI sur NS2
Etude de la WIFI sur NS2Etude de la WIFI sur NS2
Etude de la WIFI sur NS2
 
Deploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfDeploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdf
 

Último

Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...Faga1939
 

Último (18)

Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 

Chap7 java net

  • 1. Chapitre 7 : Java et les réseaux La programmation réseau Java © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 1
  • 2. Sommaire La programmation réseau Rappel Réseau Couches réseau et TCP-IP Notion de Socket Notion de Port La classe URL Les Sockets Java TCP/IP et les principaux services La classe InetAdress Processus de Sockets Exemple de process serveur Exemple de process client simple et multi-clients Datagram- Buffered stream- et Data Stream- sockets © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 2
  • 3. Rappel couches réseau et TCP/IP Source Christine Bulfone : Le client/Serveu©r et l’API socket © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 3
  • 4. Présentation de L’API Socket Source Christine Bulfone : Le client/Serveu©r et l’API socket © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 4
  • 5. La notion de « socket » API (Application Program Interface) socket Mécanisme d'interface de programmation permet aux programmes dʼéchanger des données Les application ne voient les couches de communication quʼà travers lʼAPI socket (abstraction) n'implique pas forcément une communication par le réseau le terme « socket » signifie douille, prise électrique femelle Une connexion est entièrement définie sur chaque machine par : le type de protocole (UDP ou TCP) l'adresse IP le numéro de port associé au processus serveur : port local sur lequel les connexions sont attendues client : allocation dynamique par le système Source Christine Bulfone : Le client/Serveu©r et l’API socket © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 5
  • 6. La notion de « port » Un service rendu par un programme serveur sur une machine est accessible par un port Un port est identifié sur une machine par un nombre entier (16 bits) de 0 à1023 : ports réservés assignés par l'IANA (Internet Assigned Numbers Authority) donnent accès aux services standard : > 1024 ports utilisateurs disponibles pour placer un service applicatif quelconque Source Christine Bulfone : Le client/Serveu©r et l’API socket © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 6
  • 7. java.net La classe URL accès à une URL pour le Web /** la Classe java.net.URL : ://Hote[:port]/cheminDacces * encaps. Uniform Resource Locator */ getFile(), getHost(), getPort(), public final class URL getProtocol(), getRef() retournent extends Java.lang.Object les champs de l’URL implements serealizable { ... Les données référencée par l’URL public final Object getContent() peuvent être téléchargée de 3 throws IOException; public URLConnection façons : openConnection(); par un objet URLConnection créé throws IOException; par openConnection() public final InputStream par un objet InputStream créé par openStream(); openStream() throws IOException; public String toString(); par l’appel à getContents() qui } retourne directement le contenu try pour plus de contrôle utiliser la URL lt = new URL (“http://...”); catch (MalformedURLException e) { classe URLConnection //...traitement d’erreur getContent-Length-Type-Encoding... } © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 7
  • 8. java.net Sockets Java Sockets: Utilité des “Datagram sockets” communication peer-ro-peer multicast : possède un nom et une adresse réseau envoi de paquets à un groupe (ex. Les types de sockets : NetBios) Datagram sockets Il existe une classe (java 1.1) MulticastSocket dérivée de interface pour l’accès UDP (User DatagramSocket Datagram Protocol) transmissions de paquets broadcast : indépendants “sans “ garantie envoi de paquets à l’ensemble Stream sockets des entités d’un réseau interface pour l’accès TCP situation de découverte : (Transmission Control Protocol) découvrir des entités du réseaux, guarantie de transmission... nouveau service disponible Raw sockets interface au protocol IP (Internet messagerie non critique : Protocol) ou ICMP (Internet Control envoi de messages de contrôle Message Protocol) d’activité non critiques “Je suis en tests de nouveaux protocoles ou fcts vie” évoluées © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 8
  • 9. java.net TCP/IP et les principaux services Application NIS NIS NFS NFS TELNET Etc... TELNET Etc... HTTP SMTP X11 FTP HTTP SMTP X11 FTP Présentation XDR XDR Session Sockets RPC RPC Transport UDP UDP TCP TCP Réseau IP IP Liaison Ethernet Ethernet FDDI FDDI Token Ring Token Ring Etc... Etc... © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 9
  • 10. java.net La classe InetAdress faire plus que télécharger un objet /** la Classe InetAdress: * encapsulation d’une adresse IP référencé par une URL. */ écrire un serveur par exemple... public final class InetAdress accès à une adresse sur TCP/IP extends Java.lang.Object { // Methodes de classes Net_id.Host_id.Port_ID public static InetAdress 206.24.45.100 getByName(String host) “java.sun.com” throws UnknownHostException; // ttes les @IP associées à un Host Cette classe permet de se public static InetAdress [] connecter à un port d’un Host getAllByName(String host) throws UnknownHostException; Internet et d’écrire/lire des public static InetAdress données des classes java.io. getLocalHost(String host) throws UnknownHostException; Pas de constructeur // Méthodes d’instances utilisation de getLocalHost(), public boolean equals (Object obj); getByName() ou getAllByName() public byte[] getAdress(); public getHostName(); tests sans le réseau... public hashCode(); //retourn le “localhost” public String toString(); addr = InetAddress.getByName(null); } © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 10
  • 11. Processus de Sockets Source Christine Bulfone : Le client/Serveu©r et l’API socket © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 11
  • 12. java.net Processus de Sockets - 1 creation et initialisation d’une Socket() Socket() Serveur “Socket” : appel de socket(...) Socket() Socket() Client © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 12
  • 13. java.net Processus de Sockets - 2 Établissement d’un service sur un Socket() Socket() Serveur port de la machine serveur pour être visible du réseau : bind(...) bind() bind() Socket() Socket() Client © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 13
  • 14. java.net Processus de Sockets - 3 attente de connexions, le serveur Socket() Socket() Serveur est prêt : appel de listen(...) bind() bind() Socket() Socket() listen() listen() un serveur “Datagram sockets” un serveur “Datagram sockets” Client n’utilise pas de listen() ::ililn’y a n’utilise pas de listen() n’y a pas de déroulement de sessions pas de déroulement de sessions © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 14
  • 15. java.net Processus de Sockets - 4 Un Client initialise une connexion à Socket() Socket() Serveur un service : appel de connect() bind() bind() Socket() Socket() listen() listen() session connect() connect() accept() création accept() TCP thread Client accept() accept() attente client suivant un serveur “Datagram un serveur “Datagram  Le serveur accepte la connexion sockets” n’utilise pas sockets” n’utilise pas accept() et déclenche un nouveau de accept() de accept() processus pour prendre en compte le client © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 15
  • 16. java.net Processus de Sockets - 5 le client et le serveur échangent leurs Socket() Socket() Serveur données : en général par des read() et write() dans un objet Stream “Datagram sockets” utilise bind() “Datagram sockets” utilise bind() send() et receive() plutôt que send() et receive() plutôt que Socket() Socket() read() et write() listen() write() read() et listen() session connect() connect() accept() création accept() TCP thread Client accept() accept() attente client suivant write() write() read() read() nbXLab read() read() write() write() 50 close() close() close() close() © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 16
  • 17. java.net Processus de Sockets - 6 fermeture du Socket : les sockets sont des ressources limitées et doivent être Socket() Socket() Serveur fermées par les deux parties cliente et serveur bind() bind() Socket() Socket() listen() listen() session connect() connect() accept() création accept() TCP thread Client accept() accept() attente client suivant write() write() read() read() nbXLab read() read() write() write() 50 close() close() close() close() © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 17
  • 18. java.net Exemple de serveur /** un serveur tres simple qui renvoie ce PrintWriter out = * qu’il reçoit : serveur miroir new PrintWriter( */ new OutputStreamWriter( import java.io.*; socket.getOutputStream())); import java.net.*; while (true) { public class ServerMiroir { String str = in.readLine(); // Choisir un no de port non entre 1-1024 if (str.equals("END")) break; static final int port = 8080; System.out.println public static void main(String[] args ) { ("Echoing: " + str); try { out.println(str); ServerSocket s = new ServerSocket(port); out.flush(); // Ne pas oublier! System.out.println("Serv Started: " + s); } // Blocks until a connection occurs: System.out.println("closing..."); Socket socket = s.accept(); socket.close(); System.out.println( } catch(Exception e) { "Connect. accepted, socket: "+ socket); e.printStackTrace(); BufferedReader in = } new BufferedReader( } new InputStreamReader( } socket.getInputStream())); © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 18
  • 19. java.net Exemple de process serveur /** un serveur tres simple qui renvoie ce PrintWriter out = * qu’il reçoit : serveur miroir new PrintWriter( */ new OutputStreamWriter( import java.io.*; socket.getOutputStream())); sinon le buffer sinon le buffer import java.net.*; while (true) {n’est pas écrit public class ServerMiroir { Pas d’@ IP : n’est pas écrit String str = in.readLine(); Pas d’@ IP : sur le réseau sur le réseau // Choisir un no de port entre 1-1024exécuté sur exécuté sur if (str.equals("END")) break; tant qu’il n’est static final int port = 8080; la machine tant qu’il n’est System.out.println plein la machine pas plein pas public static void main(String[] argscourante ) { ("Echoing: " + str); courante try { out.println(str); Représente Représente s = new ServerSocket(port); ServerSocket out.flush(); // Ne pas oublier! la connection la System.out.println("Serv Started: " + s); connection } // Blocks until a connection occurs: System.out.println("closing..."); Socket socket = s.accept(); socket.close(); System.out.println( } catch(Exception e) { "socket: "+ socket); e.printStackTrace(); BufferedReader in = } new BufferedReader( appel automatique à toString() }appel automatique à toString() new InputStreamReader( } socket: [addr=207.0.0.1, socket: [addr=207.0.0.1, socket.getInputStream())); port=1077, localport=8080] port=1077, localport=8080] © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 19
  • 20. java.net Exemple de process Client /** Un client tres simple qui envoie n DataInputStream in = * lignes au serveur et lit n ligne new DataInputStream( */ new BufferedInputStream( import java.io.*; socket.getInputStream())); import java.net.*; PrintStream out = public class ClientMiroir { new PrintStream( static final int port = 8080; new BufferedOutputStream( public static void main(String args[]) { socket.getOutputStream())); try { for(int i = 0; i < 10; i ++) { // Passing null to getByName() produces the out.println("howdy " + i); // special "Local Loopback" IP address, for out.flush(); // Ne pas oublier // testing on one machine w/o a network: String str = in.readLine(); InetAddress addr = System.out.println(str); InetAddress.getByName(null); } // On aurait pu utiliser l’adresse ou out.println("END"); // le nom de façon équivalente out.flush(); // Ne pas oublier! // InetAddress.getByName("127.0.0.1"); socket.close(); // InetAddress.getByName("localhost"); } catch(Exception e) { System.out.println("addr = " + addr); e.printStackTrace(); } Socket socket = new Socket(addr, port); } System.out.println("socket = " + socket); } © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 20
  • 21. java.net Gestion de plusieurs clients pour le serveur import java.io.*; import java.net.*; public class MultiServerMiroir { class ServerMiroir extends Thread { private static final int port = 8080; Socket socket; public static void main(String[] args ) private BufferedReader in; { private PrintWriter out; try { ServerMiroir (Socket s) { socket = s; ServerSocket s = new try { in = new BufferedReader( new ...); ServerSocket(port); out = new PrintWriter( new...); System.out.println("Serv. Started"); } catch(IOException e) {...} while(true) { start(); // Calls run() // Bloque jusqu’a connexion } Socket socket = s.accept(); public void run() { new ServerMiroir(socket); try { } while (true) { //lire s = in.readLine} } catch(Exception e) { System.out.println("closing..."); e.printStackTrace(); in.close(); out.close(); } socket.close(); } catch (IOException e) { ... } } } } } © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 21
  • 22. java.net Datagram- Buffered stream- et Data Stream- sockets Datagram Buf.Stream DataStream CORBA fiabilité de la communication Non Oui Oui Oui Paramètres typés Non Non Oui Oui performances très bonne bonne mauvaise bonne 1,8 ms 2 ms 301 ms 3,2 ms Sécurité Oui Oui Oui Oui Desciptions d’Interface Non Non Non Oui Les sockets fournissent un moyen de bas niveau pour la programmation réseau La programmation d’une appli. Client/Serveur doit y plutôt s’appuyer sur CORBA IIOP et Java RMI © Rémy Courdier 1996-2009 - Java Réseau - Version du cours 3.0 22