0% ont trouvé ce document utile (0 vote)
18 vues3 pages

Gestion de clients avec Sockets TCP

Ce document présente un TP sur la gestion de plusieurs clients à l'aide de sockets TCP en Java. Il explique la différence entre processus et threads, et fournit un exemple de code pour un serveur capable de gérer plusieurs connexions clients simultanément. Le serveur utilise des threads pour chaque client afin de permettre une communication parallèle et efficace.

Transféré par

ibrahimiabdelmajid05
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues3 pages

Gestion de clients avec Sockets TCP

Ce document présente un TP sur la gestion de plusieurs clients à l'aide de sockets TCP en Java. Il explique la différence entre processus et threads, et fournit un exemple de code pour un serveur capable de gérer plusieurs connexions clients simultanément. Le serveur utilise des threads pour chaque client afin de permettre une communication parallèle et efficace.

Transféré par

ibrahimiabdelmajid05
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Faculté des Sciences de Monastir Développement d’application réparties

TP N°3 : Sockets TCP – gestion plusieurs clients

Objectifs du TP :
Ce TP a pour objectif de manipuler la communication entre plusieurs clients et un serveur.
Gestion plusieurs clients

• Java offre nativement un mécanisme permettant de gérer des flux d'exécution parallèle : Les
threads.
• Rappel différence processus/thread :
-Le processus est créé comme une copie d'un processus existant
-Deux processus distincts avec leur mémoire propre

• Le thread s'exécute au sein d'un processus existant


-Nouveau flux d'exécution interne
-Partage des données du processus

1
[Link]@[Link]
Faculté des Sciences de Monastir Développement d’application réparties

Exercice :
Serveur :
package ex1;

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class Server extends Thread{


int nbClients;
public void run() {
try {
ServerSocket ss =new ServerSocket(1239);
[Link]("Bonjour ");
while(true) {
Socket s = [Link]();
++nbClients;
new Conversation(s,nbClients).start();
}
}catch(IOException e) {
[Link]();
}
}

class Conversation extends Thread{


private Socket socket;
private int numClient;

public Conversation(Socket socket, int num) {


super();
[Link] = socket;
[Link]= num;
}

public void run() {


try {
InputStream is = [Link]();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

OutputStream os = [Link]();

PrintWriter pw = new PrintWriter(os,true);

String IP = [Link]().toString();
[Link]("Connexion du client numero "+ numClient+ " IP =
"+IP);
[Link]("Bonjour , vous etes le client numero "+numClient);

while(true) {
String req;
while((req= [Link]())!=null) {
[Link](IP + "a envoyé "+req );
2
[Link]@[Link]
Faculté des Sciences de Monastir Développement d’application réparties

String rep = "Size = "+[Link]();


[Link](rep);
}

}
} catch (IOException e) {
// TODO Auto-generated catch block
[Link]();
}
}
}

public static void main(String[] args) {


new Server().start();

3
[Link]@[Link]

Vous aimerez peut-être aussi