import java.net.*;
import java.io.*;

/** Cette classe réalise le concept de service.
 * C'est-à-dire réalise la communication (i.e. le protocole) applicatif
 * du serveur.
 * Voir son <a href="Service.java.html">code source</a>.
 * @author Jean-Baptiste Yunès
 */
public class Service implements Runnable  {
  private Socket service;
  /** Le service nécessite une socket de service.
   * param service la socket de service
   */
  public Service(Socket service) {
    this.service = service;
  }
  /** Le code du service. Son déroulé est :
   * <ul>
   * <li>attendre un message
   * <li>s'endormir 5000ms
   * <li>répondre
   * <li>raccrocher
   * </ul>
   */
  public void run() {
    try {
      BufferedReader bf = new BufferedReader(new InputStreamReader(service.getInputStream()));
      String qui = bf.readLine();
      System.out.println(qui+" : vient de se connecter");
      Thread.sleep(5000);
      PrintWriter pw = new PrintWriter(new OutputStreamWriter(service.getOutputStream()));
      pw.println("j'ai bien reçu ton message "+qui);
      pw.close(); bf.close(); service.close();
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}