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


/*
 * Сервер
 */
class Server implements Runnable
{
  private ServerSocket servsock;
  private int port = 5555;
  private String datadir = "data/";


  /*
   * Создать для каждого нового клиента экземпляр класса
   * ClientConnection
   */
  synchronized void addConnection (Socket sock)
    {
      ClientConnection ccon = new ClientConnection (this, sock);
    }


  /*
   * Имя директории с данными
   */
  public String getDataDir ()
    {
      return datadir;
    }


  /*
   * Основной цикл работы сервера
   */
  public void run ()
    {
      try
        {
          /* Создание экземпляра класса ServerSocket */
          servsock = new ServerSocket (port);

          /* Принимать соединения */
          while (true)
            {
              Socket sock = servsock.accept ();

              addConnection (sock);
            }
        }
      catch (IOException e)
        {
          System.out.println ("Stopping server.");
        }
    }


  /*
   * Точка входа
   */
  public static void main (String args[])
    {
      /* Создание нового потока для поддержки
         экземпляра класса Server */
      new Thread (new Server ()).start ();

      /* Ожидание завершения работы сервера */
      try
        {
          Thread.currentThread ().join ();
        }
      catch (InterruptedException e)
        {}
    }
}
