import java.net.*; import java.io.*; import Connexion; public class MajServeur2 implements Runnable { private static final int PORT = 45678; // par défaut protected ServerSocket _server = null; protected Socket _socket = null; public MajServeur2(int num) { try { // crée une socket de type serveur rattachée au port, _server = new ServerSocket(num); } catch(IOException e) { System.err.println("Server: " + e); e.printStackTrace(); System.exit(1); } System.out.println("Serveur: à l'écoute sur le port " + _server.getLocalPort()); // this.start(); } public void run() { try { while(true) { // il ne reste qu'à attendre que quelqu'un veuille bien nous parler _socket = _server.accept(); // tiens, un client ! System.out.println("Serveur: connexion établie avec le client " + _socket.getInetAddress()); // Crée un thread Connexion pour s'occuper des echanges de données // avec le client Connexion connexion = new Connexion(_socket); Thread thread = new Thread(connexion); thread.start(); } } catch(IOException e) { System.err.println("Serveur: " + e); e.printStackTrace(); } finally { // on ferme cette connexion et on attend la suivante try{_socket.close();} catch(IOException e) {} System.out.println("Serveur: connexion terminée"); } } public static void main(String args[]) { int num; MajServeur2 serveur = null; if(args.length == 0) { serveur = new MajServeur2(PORT); } else if((args.length == 1) && ((num = Integer.parseInt(args[0])) > 0)) { serveur = new MajServeur2(num); } else { System.out.println("Usage: java MajServeur []"); System.exit(1); } Thread thread = new Thread(serveur); thread.start(); } }