public Server() {

		ExecutorService executor = null;
		ServerSocket serverSocket = null;

		try {
			/**
			 * Создание сокета сервера для заданного порта
			 * */
			serverSocket = new ServerSocket(PORT);
			System.out.println("Waiting");

			/**
			 * Создание пула с числом потоков, равному AMOUNT_OF_THREADS
			 * */
			executor = Executors.newFixedThreadPool(MAX_AMOUNT_OF_THREADS);

			while (true) {
				/**
				 * Выполнение метода, который обеспечивает подключение сервера к
				 * клиенту
				 * */
				Socket s = serverSocket.accept();
				/**
				 * Запуск нового потока
				 * */
				executor.execute(new Thread(s));
			}
		} catch (IOException e) {
			System.err.println("Can't use " + PORT);
			e.printStackTrace();
		} finally {
			/**
			 * Выход по завершению всех потоков
			 * */
			if (executor != null) {
				executor.shutdown();
			}
		}

	}