/** * ThreadedServer.java */ import java.io.*; import java.net.*; import java.util.*; /** * Dieser Server verwaltet eine HashMap beliebiger Objekte. Als hash key * dient das Ergebnis der Methode toString des Objektes. * * * @author PI4 * @version $Id$ */ public class ThreadedServer { /** * Enthaelt die vom Server gespeicherten Objekte */ private HashMap objectRepository; /** * Der Service Access Point des Servers */ private ServerSocket serverSock; /** * Erzeugt den ServerSocket und wartet in einer Endlosschleife auf * eingehende Verbindungsanfragen von Clients. */ public ThreadedServer(int port) { try { this.objectRepository= new HashMap(); this.serverSock = new ServerSocket(port); System.err.println("[Server wartet auf Port " + port + "]"); for (;;) { Socket sock = serverSock.accept(); Connection c = new Connection(sock, objectRepository); System.err.println("[Verbindung zu " + sock.getInetAddress() + ":" + sock.getPort() + "]"); } } catch (IOException ioe) { ioe.printStackTrace(); } } public static void main(String[] argv) { if (argv.length == 1) new ThreadedServer(Integer.parseInt(argv[0])); else System.err.println("Starten mittels java ThreadedServer "); } }