Soumettre la recherche
Mettre en ligne
Chap7_JavaNet.pdf
•
0 j'aime
•
4 vues
P
Patiento Del Mar
Suivre
Sockets Java Course
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 22
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Chap7 java net
Chap7 java net
Oussama Lahssini
module_I6_Sockets.pdf
module_I6_Sockets.pdf
Patiento Del Mar
Le Réseau et Java
Le Réseau et Java
Korteby Farouk
Les socket ing1_issat
Les socket ing1_issat
sloumaallagui
Reseau
Reseau
gijo000
programmation réseau en java
programmation réseau en java
Ezéquiel Tsagué
Les sockets.pptx
Les sockets.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
Développement informatique : Programmation réseau
Développement informatique : Programmation réseau
ECAM Brussels Engineering School
Recommandé
Chap7 java net
Chap7 java net
Oussama Lahssini
module_I6_Sockets.pdf
module_I6_Sockets.pdf
Patiento Del Mar
Le Réseau et Java
Le Réseau et Java
Korteby Farouk
Les socket ing1_issat
Les socket ing1_issat
sloumaallagui
Reseau
Reseau
gijo000
programmation réseau en java
programmation réseau en java
Ezéquiel Tsagué
Les sockets.pptx
Les sockets.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
Développement informatique : Programmation réseau
Développement informatique : Programmation réseau
ECAM Brussels Engineering School
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
Souf212
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
mouad Lousimi
8-socket.pdf
8-socket.pdf
StyvePola1
6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf
AliouDiallo24
02 java-socket
02 java-socket
naimanaima1
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
YoussefJamma
Rapport application chat
Rapport application chat
Tbatou sanae
spring.pdf
spring.pdf
BouaggadAmine
Introduction aux-sockets
Introduction aux-sockets
Aissam エサム Afifi アフフ
173544 introduction-aux-sockets
173544 introduction-aux-sockets
naimanaima1
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Tarik Zakaria Benmerar
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
HINDGUENDOUZ
APACHE TOMCAT
APACHE TOMCAT
Rachid NID SAID
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Heithem Abbes
Programmation réseau en JAVA
Programmation réseau en JAVA
Bachir Benyammi
Apache Open SSL
Apache Open SSL
Anouar Loukili
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpn
Yaya N'Tyeni Sanogo
Messaging temps réel avec Go
Messaging temps réel avec Go
Mickaël Rémond
JavaRMI.pdf
JavaRMI.pdf
ngombeemmanuel
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
profsn
grpc_tutorial.pdf
grpc_tutorial.pdf
Patiento Del Mar
0.coursGitEclipse.pdf
0.coursGitEclipse.pdf
Patiento Del Mar
Contenu connexe
Similaire à Chap7_JavaNet.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
Souf212
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
mouad Lousimi
8-socket.pdf
8-socket.pdf
StyvePola1
6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf
AliouDiallo24
02 java-socket
02 java-socket
naimanaima1
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
YoussefJamma
Rapport application chat
Rapport application chat
Tbatou sanae
spring.pdf
spring.pdf
BouaggadAmine
Introduction aux-sockets
Introduction aux-sockets
Aissam エサム Afifi アフフ
173544 introduction-aux-sockets
173544 introduction-aux-sockets
naimanaima1
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Tarik Zakaria Benmerar
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
HINDGUENDOUZ
APACHE TOMCAT
APACHE TOMCAT
Rachid NID SAID
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Heithem Abbes
Programmation réseau en JAVA
Programmation réseau en JAVA
Bachir Benyammi
Apache Open SSL
Apache Open SSL
Anouar Loukili
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpn
Yaya N'Tyeni Sanogo
Messaging temps réel avec Go
Messaging temps réel avec Go
Mickaël Rémond
JavaRMI.pdf
JavaRMI.pdf
ngombeemmanuel
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
profsn
Similaire à Chap7_JavaNet.pdf
(20)
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005.pdf
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
8-socket.pdf
8-socket.pdf
6- Javacousesforenginerss_reseaux_v2.pdf
6- Javacousesforenginerss_reseaux_v2.pdf
02 java-socket
02 java-socket
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Rapport application chat
Rapport application chat
spring.pdf
spring.pdf
Introduction aux-sockets
Introduction aux-sockets
173544 introduction-aux-sockets
173544 introduction-aux-sockets
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
APACHE TOMCAT
APACHE TOMCAT
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Programmation réseau en JAVA
Programmation réseau en JAVA
Apache Open SSL
Apache Open SSL
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpn
Messaging temps réel avec Go
Messaging temps réel avec Go
JavaRMI.pdf
JavaRMI.pdf
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
Plus de Patiento Del Mar
grpc_tutorial.pdf
grpc_tutorial.pdf
Patiento Del Mar
0.coursGitEclipse.pdf
0.coursGitEclipse.pdf
Patiento Del Mar
Primefaces.ppt
Primefaces.ppt
Patiento Del Mar
hibernateormoverview-140501154227-phpapp02.pdf
hibernateormoverview-140501154227-phpapp02.pdf
Patiento Del Mar
hibernateormfeatures-140223193044-phpapp02.pdf
hibernateormfeatures-140223193044-phpapp02.pdf
Patiento Del Mar
Spring Data Advanced Querying.ppt
Spring Data Advanced Querying.ppt
Patiento Del Mar
Thymeleaf and Spring Controllers.ppt
Thymeleaf and Spring Controllers.ppt
Patiento Del Mar
Spring Security.ppt
Spring Security.ppt
Patiento Del Mar
momjms.pdf
momjms.pdf
Patiento Del Mar
rmi.pdf
rmi.pdf
Patiento Del Mar
synchronization.pdf
synchronization.pdf
Patiento Del Mar
cours6.pdf
cours6.pdf
Patiento Del Mar
java_PAR.pdf
java_PAR.pdf
Patiento Del Mar
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
Patiento Del Mar
22-reflection.pdf
22-reflection.pdf
Patiento Del Mar
16-Concurrence-APIs-Concurrentes.pdf
16-Concurrence-APIs-Concurrentes.pdf
Patiento Del Mar
12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdf
Patiento Del Mar
17-Concurrence-Fork-Join.pdf
17-Concurrence-Fork-Join.pdf
Patiento Del Mar
13-Concurrence-Producteur-consommateur.pdf
13-Concurrence-Producteur-consommateur.pdf
Patiento Del Mar
15-Concurrence-Operations-Atomiques.pdf
15-Concurrence-Operations-Atomiques.pdf
Patiento Del Mar
Plus de Patiento Del Mar
(20)
grpc_tutorial.pdf
grpc_tutorial.pdf
0.coursGitEclipse.pdf
0.coursGitEclipse.pdf
Primefaces.ppt
Primefaces.ppt
hibernateormoverview-140501154227-phpapp02.pdf
hibernateormoverview-140501154227-phpapp02.pdf
hibernateormfeatures-140223193044-phpapp02.pdf
hibernateormfeatures-140223193044-phpapp02.pdf
Spring Data Advanced Querying.ppt
Spring Data Advanced Querying.ppt
Thymeleaf and Spring Controllers.ppt
Thymeleaf and Spring Controllers.ppt
Spring Security.ppt
Spring Security.ppt
momjms.pdf
momjms.pdf
rmi.pdf
rmi.pdf
synchronization.pdf
synchronization.pdf
cours6.pdf
cours6.pdf
java_PAR.pdf
java_PAR.pdf
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
22-reflection.pdf
22-reflection.pdf
16-Concurrence-APIs-Concurrentes.pdf
16-Concurrence-APIs-Concurrentes.pdf
12-Concurrence-Rendez-vous.pdf
12-Concurrence-Rendez-vous.pdf
17-Concurrence-Fork-Join.pdf
17-Concurrence-Fork-Join.pdf
13-Concurrence-Producteur-consommateur.pdf
13-Concurrence-Producteur-consommateur.pdf
15-Concurrence-Operations-Atomiques.pdf
15-Concurrence-Operations-Atomiques.pdf
Dernier
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
Institut de l'Elevage - Idele
Algo II : les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
Sana REFAI
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
Institut de l'Elevage - Idele
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
Institut de l'Elevage - Idele
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
Institut de l'Elevage - Idele
présentation sur la logistique (4).
présentation sur la logistique (4).
FatimaEzzahra753100
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
Institut de l'Elevage - Idele
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
mia884611
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
Institut de l'Elevage - Idele
Dernier
(9)
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
Algo II : les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
présentation sur la logistique (4).
présentation sur la logistique (4).
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
Chap7_JavaNet.pdf
1.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 1 Chapitre 7 : Java et les réseaux La programmation réseau Java
2.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 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
3.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 3 Rappel couches réseau et TCP/IP Source Christine Bulfone : Le client/Serveu©r et l’API socket
4.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 4 Présentation de L’API Socket Source Christine Bulfone : Le client/Serveu©r et l’API socket
5.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 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
6.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 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
7.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 7 java.net La classe URL accès à une URL pour le Web ://Hote[:port]/cheminDacces getFile(), getHost(), getPort(), getProtocol(), getRef() retournent les champs de l’URL Les données référencée par l’URL peuvent être téléchargée de 3 façons : par un objet URLConnection créé par openConnection() par un objet InputStream créé par openStream() par l’appel à getContents() qui retourne directement le contenu pour plus de contrôle utiliser la classe URLConnection getContent-Length-Type-Encoding... /** la Classe java.net.URL : * encaps. Uniform Resource Locator */ public final class URL extends Java.lang.Object implements serealizable { ... public final Object getContent() throws IOException; public URLConnection openConnection(); throws IOException; public final InputStream openStream(); throws IOException; public String toString(); } try URL lt = new URL (“http://...”); catch (MalformedURLException e) { //...traitement d’erreur }
8.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 8 java.net Sockets Java Sockets: communication peer-ro-peer possède un nom et une adresse réseau Les types de sockets : Datagram sockets interface pour l’accès UDP (User Datagram Protocol) transmissions de paquets indépendants “sans “ garantie Stream sockets interface pour l’accès TCP (Transmission Control Protocol) guarantie de transmission... Raw sockets interface au protocol IP (Internet Protocol) ou ICMP (Internet Control Message Protocol) tests de nouveaux protocoles ou fcts évoluées Utilité des “Datagram sockets” multicast : envoi de paquets à un groupe (ex. NetBios) Il existe une classe (java 1.1) MulticastSocket dérivée de DatagramSocket broadcast : envoi de paquets à l’ensemble des entités d’un réseau situation de découverte : découvrir des entités du réseaux, nouveau service disponible messagerie non critique : envoi de messages de contrôle d’activité non critiques “Je suis en vie”
9.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 9 java.net TCP/IP et les principaux services Ethernet Ethernet FDDI FDDI Token Ring Token Ring Etc... Etc... IP IP UDP UDP TCP TCP RPC RPC XDR XDR NIS NIS NFS NFS X11 X11 FTP FTP HTTP HTTP SMTP SMTP TELNET TELNET Etc... Etc... Sockets Application Présentation Session Transport Réseau Liaison
10.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 10 java.net La classe InetAdress faire plus que télécharger un objet référencé par une URL. écrire un serveur par exemple... accès à une adresse sur TCP/IP Net_id.Host_id.Port_ID 206.24.45.100 “java.sun.com” Cette classe permet de se connecter à un port d’un Host Internet et d’écrire/lire des données des classes java.io. Pas de constructeur utilisation de getLocalHost(), getByName() ou getAllByName() tests sans le réseau... //retourn le “localhost” addr = InetAddress.getByName(null); /** la Classe InetAdress: * encapsulation d’une adresse IP */ public final class InetAdress extends Java.lang.Object { // Methodes de classes public static InetAdress getByName(String host) throws UnknownHostException; // ttes les @IP associées à un Host public static InetAdress [] getAllByName(String host) throws UnknownHostException; public static InetAdress getLocalHost(String host) throws UnknownHostException; // Méthodes d’instances public boolean equals (Object obj); public byte[] getAdress(); public getHostName(); public hashCode(); public String toString(); }
11.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 11 Processus de Sockets Source Christine Bulfone : Le client/Serveu©r et l’API socket
12.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 12 java.net Processus de Sockets - 1 creation et initialisation d’une “Socket” : appel de socket(...) Socket() Socket() Socket() Socket() Serveur Client
13.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 13 java.net Processus de Sockets - 2 Établissement d’un service sur un port de la machine serveur pour être visible du réseau : bind(...) Socket() Socket() bind() bind() Socket() Socket() Serveur Client
14.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 14 java.net Processus de Sockets - 3 attente de connexions, le serveur est prêt : appel de listen(...) Socket() Socket() bind() bind() listen() listen() Socket() Socket() Serveur Client un serveur “Datagram sockets” n’utilise pas de listen() : il n’y a pas de déroulement de sessions un serveur “Datagram sockets” n’utilise pas de listen() : il n’y a pas de déroulement de sessions
15.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 15 java.net Processus de Sockets - 4 Un Client initialise une connexion à un service : appel de connect() Socket() Socket() bind() bind() listen() listen() accept() accept() Socket() Socket() connect() connect() Serveur Client session TCP Le serveur accepte la connexion accept() et déclenche un nouveau processus pour prendre en compte le client accept() accept() accept() accept() session TCP création thread attente client suivant un serveur “Datagram sockets” n’utilise pas de accept() un serveur “Datagram sockets” n’utilise pas de accept()
16.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 16 java.net Processus de Sockets - 5 le client et le serveur échangent leurs données : en général par des read() et write() dans un objet Stream Socket() Socket() bind() bind() listen() listen() accept() accept() accept() accept() Socket() Socket() connect() connect() write() write() read() read() close() close() read() read() write() write() close() close() Serveur Client session TCP création thread attente client suivant nbXLab 50 “Datagram sockets” utilise send() et receive() plutôt que read() et write() “Datagram sockets” utilise send() et receive() plutôt que read() et write()
17.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 17 java.net Processus de Sockets - 6 fermeture du Socket : les sockets sont des ressources limitées et doivent être fermées par les deux parties cliente et serveur Socket() Socket() bind() bind() listen() listen() accept() accept() accept() accept() Socket() Socket() connect() connect() write() write() read() read() close() close() read() read() write() write() close() close() Serveur Client session TCP création thread attente client suivant nbXLab 50
18.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 18 java.net Exemple de serveur /** un serveur tres simple qui renvoie ce * qu’il reçoit : serveur miroir */ import java.io.*; import java.net.*; public class ServerMiroir { // Choisir un no de port non entre 1-1024 static final int port = 8080; public static void main(String[] args ) { try { ServerSocket s = new ServerSocket(port); System.out.println("Serv Started: " + s); // Blocks until a connection occurs: Socket socket = s.accept(); System.out.println( "Connect. accepted, socket: "+ socket); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); PrintWriter out = new PrintWriter( new OutputStreamWriter( socket.getOutputStream())); while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println ("Echoing: " + str); out.println(str); out.flush(); // Ne pas oublier! } System.out.println("closing..."); socket.close(); } catch(Exception e) { e.printStackTrace(); } } }
19.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 19 java.net Exemple de process serveur /** un serveur tres simple qui renvoie ce * qu’il reçoit : serveur miroir */ import java.io.*; import java.net.*; public class ServerMiroir { // Choisir un no de port entre 1-1024 static final int port = 8080; public static void main(String[] args ) { try { ServerSocket s = new ServerSocket(port); System.out.println("Serv Started: " + s); // Blocks until a connection occurs: Socket socket = s.accept(); System.out.println( "socket: "+ socket); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); PrintWriter out = new PrintWriter( new OutputStreamWriter( socket.getOutputStream())); while (true) { String str = in.readLine(); if (str.equals("END")) break; System.out.println ("Echoing: " + str); out.println(str); out.flush(); // Ne pas oublier! } System.out.println("closing..."); socket.close(); } catch(Exception e) { e.printStackTrace(); } } } Pas d’@ IP : exécuté sur la machine courante Pas d’@ IP : exécuté sur la machine courante Représente la connection Représente la connection appel automatique à toString() socket: [addr=207.0.0.1, port=1077, localport=8080] appel automatique à toString() socket: [addr=207.0.0.1, port=1077, localport=8080] sinon le buffer n’est pas écrit sur le réseau tant qu’il n’est pas plein sinon le buffer n’est pas écrit sur le réseau tant qu’il n’est pas plein
20.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 20 java.net Exemple de process Client /** Un client tres simple qui envoie n * lignes au serveur et lit n ligne */ import java.io.*; import java.net.*; public class ClientMiroir { static final int port = 8080; public static void main(String args[]) { try { // Passing null to getByName() produces the // special "Local Loopback" IP address, for // testing on one machine w/o a network: InetAddress addr = InetAddress.getByName(null); // On aurait pu utiliser l’adresse ou // le nom de façon équivalente // InetAddress.getByName("127.0.0.1"); // InetAddress.getByName("localhost"); System.out.println("addr = " + addr); Socket socket = new Socket(addr, port); System.out.println("socket = " + socket); DataInputStream in = new DataInputStream( new BufferedInputStream( socket.getInputStream())); PrintStream out = new PrintStream( new BufferedOutputStream( socket.getOutputStream())); for(int i = 0; i < 10; i ++) { out.println("howdy " + i); out.flush(); // Ne pas oublier String str = in.readLine(); System.out.println(str); } out.println("END"); out.flush(); // Ne pas oublier! socket.close(); } catch(Exception e) { e.printStackTrace(); } } }
21.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 21 java.net Gestion de plusieurs clients pour le serveur import java.io.*; import java.net.*; class ServerMiroir extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; ServerMiroir (Socket s) { socket = s; try { in = new BufferedReader( new ...); out = new PrintWriter( new...); } catch(IOException e) {...} start(); // Calls run() } public void run() { try { while (true) { //lire s = in.readLine} System.out.println("closing..."); in.close(); out.close(); socket.close(); } catch (IOException e) { ... } } } public class MultiServerMiroir { static final int port = 8080; public static void main(String[] args ) { try { ServerSocket s = new ServerSocket(port); System.out.println("Serv. Started"); while(true) { // Bloque jusqu’a connexion Socket socket = s.accept(); new ServerMiroir(socket); } } catch(Exception e) { e.printStackTrace(); } } }
22.
© Rémy Courdier
1996-2009 - Java Réseau - Version du cours 3.0 22 java.net Datagram- Buffered stream- et Data Stream- sockets fiabilité de la communication Paramètres typés performances Sécurité Desciptions d’Interface Non Non très bonne 1,8 ms Oui Non Datagram Oui Non bonne 2 ms Oui Non Buf.Stream Oui Oui mauvaise 301 ms Oui Non DataStream Oui Oui bonne 3,2 ms Oui Oui CORBA 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
Télécharger maintenant