Iterative.java

package fr.umlv.ji.tcp.server;
import java.util.logging.*;
import java.util.prefs.*;
import java.net.*;
import java.io.*;
public class Iterative extends Server {
  /** Constructeur du serveur. */
  public Iterative(Logger log, Preferences prefs) {
    super(log,prefs);
  }
  /** Méthode de démarrage du serveur itératif. Il accepte
      itérativement les connexions pendantes et exécute, sur la socket
      de service correspondante, le service qu'il représente. */
  public void launch() {
    try {
      bind();
    } catch (IOException e) {
      logger.log(Level.SEVERE,"bind",e);
      return;
    }
    while (true) {
      try {
    Socket socket = serverSocket.accept();
    service.serve(socket);
    socket.close();
      } catch (NullPointerException e) {
    logger.log(Level.SEVERE,"service",e);
    break;
      } catch (IOException e) {
    logger.log(Level.SEVERE,"accept",e);
    break;
      }
    }
  }
}