Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
TP N°4 Développement d’ une application
Client / Serveur en utilisant les Sockets TCP Dans une archi C/S: Le serveur (vveb, BD, de messagerie, etc) offre un service sur le réseau (accepte des requêtes, les traite et renvoie le résultat au client). Le client utilise le service (envoie une requête et reçoit la réponse). Qui dit TCP dit mode connecté et fiabilité de communication Dans plusieurs applications, la communication qui se produit entre le client et le serveur doit être fiable (faut gérer: les pertes, les doubles, les erreurs, le désordre…) D’où l’utilisation du protocole de transport TCP : Mode connecté Garantie une communication fiable
2
Notion du Port Permet d’identifier un service sur une machine.
Il tient sur 16 bits (valeurs de 0 à 65535). Ports réservés aux services standards : (HTTP : 80, FTP: 21 …)
3
Notion de socket Socket désigne un point de communication identifié par (Adresse IP , Port) Une connexion s'établit entre une socket source et une socket destinataire. API Socket: Interface pour la programmation réseau au niveau de la couche transport.
4
C/S mode connecté
5
Application C/S du TP Le client envoie un message
Le serveur le transforme en majuscule et le renvoie au client L’échange se continue jusqu’à ce que le client envoie Fin
6
Partie I Programme Serveur
7
Etape 1: Créer le projet monServeur
9
Etape 2: Créer les sockets côté serveur
import java.net.*; public static void main(String[] args) { try { ServerSocket svr = new ServerSocket(5000); System.out.println ("Serveur Connecté sur le port " + svr.getLocalPort() + "en attente d'une requête"); } catch (IOException ex) ….
11
while (true){ // Boucle Infinie
Socket sClient = svr.accept(); System.out.println ("Client connecté sur le port"+sClient.getPort()); // Reste de code à mettre ici }
13
Etape 3: Créer les flots d’E/S
DataInputStream Sin= new DataInputStream(sClient.getInputStream()); DataOutputStream Sout= new DataOutputStream(sClient.getOutputStream());
16
Etape 4: Boucle Lecture / Ecriture
String ch; ch = Sin.readUTF(); // Lecture while ( ! ch.equalsIgnoreCase("Fin") ) { Sout.writeUTF(ch.toUpperCase()); // Ecriture ch= Sin.readUTF(); } sClient.close();
17
Partie II Programme Client
20
Et si le serveur réside sur
une autre machine ??
21
Exécuter le serveur ensuite le client
22
Créer les flots d’E/S
23
Bouton Envoyer ligne = jTextField1.getText(); Cout.writeUTF(ligne);
String ligne; ligne = jTextField1.getText(); Cout.writeUTF(ligne); jTextField1.setText(""); jTextArea1.append("Client:"+ligne+ "\n"); jTextArea1.append("Serveur:" + Cin.readUTF()+ "\n"); if (ligne. equalsIgnoreCase("fin")) { monClient.close(); // System.exit(0); }else{ jTextArea1.append(Cin.readUTF() + "\n"); }
24
Notre serveur peut prendre en charge plusieurs clients mais à tour de rôle.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.