/*
 * "Grundkurs Programmieren in Java - Band 2 (2. Auflage, 2006)I"
 * 2003-2006, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe (Version 2.0)
 * (c) 2003-2006 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import java.io.*;
import java.net.*;

class TalkServer {
  
  public static void main( String[] args ) {
    Socket c1;
    Socket c2;
    // Argumentanzahl überprüfen
    if (args.length == 1) {
      // Port-Nummer bestimmen
      int port = Integer.parseInt( args[0] );
      // try-catch-Block beginnen
      try {
        // Einen Socket für den Server erzeugen
        ServerSocket server = new ServerSocket( port );
        System.out.println("Der Server laeuft");
        // Endlosschleife
        while (true) {
          // Für je zwei Clients, die eine Verbindung aufbauen,
          // zwei Talk-Dienst Threads starten
          c1 = server.accept();
          c2 = server.accept();
          new TalkDienst(c1,c2).start();
          new TalkDienst(c2,c1).start();
        }
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
    else {
      // Hinweis für korrekten Aufruf auf die Konsole ausgeben
      System.out.println( "Aufruf: java TalkServer <PortNummer>" );
    }
  }
}