1 pièce(s) jointe(s)
progrmmer en java pour client serveur
J'ai un programme en java.
l'énoncé suivant
Modifiez ce code pour que plusieurs clients puissent se connecter simultanément. Pour cela, transformez le serveur en processus l´eger (Thread). Cr´eez une classe Manager qui va initier la connexion comme
pr´ec´edemment, lancer les processus l´egers `a chaque connexion, et m´emoriser ces processus dans un vecteur de serveurs (classe Vector).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
import java.io.*;
import java.net.*;
import java.util.*;
class Manager {
private ServerSocket serverSocket;
private int port;
private int idcount;
private Vector<Server> servers=new Vector<Server>(10);
public Manager(int p){
port=p;
idcount=1;
}
public void addServer(Server s){
servers.add(s);
}
public void removeServer(Server s){
servers.remove(s);
}
public void listServers(){
System.out.println("Liste des serveurs :"+servers.toString());
}
public void waitForConnexion(){
try{
System.out.println("[Manager] Attente de connexion");
serverSocket=new ServerSocket(port);
for(;;){
Server s=new Server(serverSocket.accept(),idcount,this);
addServer(s);
s.start();
idcount++;
listServers();
}
}
catch (Exception e){
e.printStackTrace();
}
}
public static void main(String argv[]){
new Manager(Integer.parseInt(argv[0])).waitForConnexion();
}
} |
Mais il y a quelque erreurs,je ne comprend pas.