// Programm 5-6: ./JDBCclientserver/ThreadedInternetServer.java 
import java.io.*;
import java.net.*;

public class ThreadedInternetServer {
  final static int port = 6799;
  static int zähler;
  public static void main(String[] args) throws Exception {
    ServerSocket server = new ServerSocket(port);
    System.out.println(
                 "\nServer belauscht port " + port + " ...\n");
    while(true) {                             // Serverscheife
      new ThreadedInternetServerThread(server.accept());
    }
  }
}
class ThreadedInternetServerThread implements Runnable {
  Socket lauschen;
  public ThreadedInternetServerThread(Socket lauschen) {
    this.lauschen = lauschen;
    (new Thread(this)).start();
  }
  public void run() {
    try {
      InputStream ein = lauschen.getInputStream();
      PrintWriter aus =
                   new PrintWriter(lauschen.getOutputStream());
      aus.print(++ThreadedInternetServer.zähler + " # ");
      for (int ch; (ch = ein.read()) != 0;)
        aus.print(String.valueOf((char) ch));
      aus.println(" Hello Client!!"); aus.close();
      System.out.print("#"); System.out.flush();
    }
    catch (Exception ex) {ex.printStackTrace();}
  }
}
