1. Atelier Réseaux & Sécurité
Chef : SAADA Mohamed
LES sockets
I. Définition de socket
II. Les types de sockets
Socket Serveur
Socket client
III. Démo
2. • Définition de socket
Un socket ou connecteur réseau est une entité logicielle qui permet à
un programmeur de développer une application utilisant des
protocoles réseaux pour l’échange des données.
Un socket est définie par deux entité:
Une adresse IP
Un port
3. • Présentation de l’atelier
On différencie entre deux catégories de socket :
Socket en mode connecté (TCP)
Socket en mode non connecté(UDP)
Le socket crée en mode connecté (TCP) donne naissance à l’architecture
client serveur, donc on distingue entre deux types de socket :
socket serveur et socket client.
5. • Types de socket
Socket Serveur
Le serveur va ouvrir un Socket pour écouter les connexions clients
Et à chaque connexion d’un nouveau client il établie un nouveau
Socket entre eux.
ServerSocket socketServeur = new ServerSocket(PORT);
Il doit spécifier le numéro de port sur le quel il accepte les connexions
Des clients.
A chaque nouveau client qui va essayer de se connecter au serveur en
Utilisant le même numéro de port :le serveur crée un Socket pour
Communiquer uniquement avec ce client
Socket socketClient = socketServeur.accept();
6. • Types de socket
• Socket Serveur
après la phase de l’établissement de connexion le client et le serveur
vont échanger des messages entre eux.
Donc à partir de ça on peut créer un service de chat entre les deux
entité de réseaux.
Voici la classe et les méthodes en java qui permettent de récupérer les
messages:
BufferedReader bufferedReader = new BufferedReader( new
InputStreamReader(socketClient.getInputStream()));
String question = bufferedReader.readLine();
La méthode readLine() permet de récupérer le message.
7. • Types de socket
Socket Serveur
Pour envoyer des messages vers le client ,java assure la classe
BufferedWriter .
L’instantiation de cette classe est comme suit:
BufferedWriter bufferedWriter = new BufferedWriter( new
OutputStreamWriter(socketClient.getOutputStream()));
Aprés on utilise ces deux méthodes pour l’envoie:
bufferedWriter.write(response);
bufferedWriter.flush();
Aprés l’échange des messages entre le client et le serveur ,ce dernier
Ferme la connexion en utlisant cette méthode:
socketClient.close();
8. • Types de socket
Socket Client
Le client établie une connexion avec le serveur en introduisant l’adresse IP
De serveur et le numéro de port de communication, voila la classe qui
Assure cette établissement de connexion:
Socket Client = new Socket(serveur, port);
Les méthodes d’écriture et de lecture des messages sont les mêmes
NB:le numéro de port est de préférence supérieur à 1024 car les ports
Inférieurs à 1024 sont réservés pour d’autres services comme Telnet,FTP,
Web..
9. • Types de socket
Socket Serveur
Serveur en thread:
Un thread désigne un point d'exécution dans le programme. En fait, le
langage Java est multi-thread, c'est à dire qu'il peut exécuter du code
à plusieurs endroits de façon indépendante.
Partant de cette technologie ,on peut utiliser la thread pour que le serveur
Puisse récupérer plusieurs clients en même temps.
Pour effectuer cela il faut que la classe serveur implémente l’interface
Runnable.
Aprés il faut écrire le code de serveur dans la méthode run().
Dans le programme principale on écrit ce bout de code :
Thread thread = new Thread(serveur);
thread.start();