Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание сервера  (Прочитано 7092 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« : 20-02-2010 23:11 » 

    Сервер:
Код:
public class Server extends java.lang.Thread
{
    private boolean must_work = false;

    public Server()
    {
        super("ChessServer");

        this.setPriority(java.lang.Thread.MAX_PRIORITY);

        must_work = true;
        this.start();
    }

    public void bringToAStop()
    {
        must_work = false;
    }

    @Override
    public void run()
    {
        java.net.ServerSocket socket = null;
        while(must_work)
        {
            try
            {
                socket = new java.net.ServerSocket(9001);
                socket.accept();
                // Etc.
            }
            catch(java.lang.Exception exception) {}
        }
    }
}


    Класс, который его запускает:
Код:
public class Start {
    public static void main(java.lang.String [] atgs)
    {
        new Server();
    }
}

    Подскажите, пожалуйста, (или хотя бы подтолкните на решение) как мне нужно модифицировать мой Server, чтоб он работал "всё время" (тоесть, до сбоя машины-сервера или до получения команды об остановке)?
    Я работаю в NetBeans 6.5 и после запуска main'а горит флажок "running...". А мне нужно чтоб он (NetBeans или компилятор) вроде как бы уже закончил работу, а сервер всё-равно оставался рабочим.
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #1 : 23-02-2010 15:11 » 

Как создать процесс, полностю отдельный от main? Не зависящий от него.
Обычные Thread'ы завершаются вместе с main'ом.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 23-02-2010 15:38 » new

Ну вызови запуск приложения. В С++ есть функция system. В Java точно не могу сказать.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Asver
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #3 : 25-02-2010 09:02 » 

Обычные Thread'ы завершаются вместе с main'ом.

Обычные потоки не завершаются вместе с main'ом. Завершаются только потоки-демоны ( setDaemon(true); ). Виртуальная машина работает до тех пор, пока запущен хоть один поток не демон или пока не вызван метод System.exit( int ).
Цитата
Я работаю в NetBeans 6.5 и после запуска main'а горит флажок "running...".
- это говорит только о том, что запущена виртуальная машина. Не нравится что показывает netBeans - запускай вручную без него.
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #4 : 26-02-2010 15:51 » 

Asver, спасибо за полезную информацию!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines