![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Взял пример из статьи. Работает. Но как сделать полноценный сервер: запустить его, и чтобы он ожидал всех соединений, а не только одного??? Итак:
1. Как запустить на удаленной машине нормальный сервер? 2. Как сделать чтобы сервер работал с сотней параллельных соединений? 3. Как сделать чтобы сервер не прекращал работу?
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Примеров много можно найти. У Эккеля, например:
|
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Пасибо... Но если на сервак ставить, то это не обязательно должен быть сервлет?
|
|||
|
||||
| BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: нет Всего: 5 |
Ты что то путаешь при чем тут сервлет?
|
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
BlackStar, ну я же пишу серверное приложение... Это что, может быть обычное приложение java с main?
|
|||
|
||||
| BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: нет Всего: 5 |
Это должно быть обычным приложением.
http://ru.wikipedia.org/wiki/Сервлет Это сообщение отредактировал(а) BlackStar - 20.12.2006, 17:21 |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Если вы пишете HTTP сервер, то вам надо использовать Томсат, например. Все операции с сокетами, потоками и прочим там внутри реализованы. Вам остается только установить его и программировать обработку запросов в сервлетах. |
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Вот я и хочу в Томкате сделать сокеты... это я так понял через сервлеты!? Как конкретно? Как запускать операцию прослушивания?
|
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 5 Всего: 132 |
Anton Vatchenko, давай точно определимся с тем, что тебе нужно. Томкат и сокеты между собой напрямую никак не связаны. Томкат позволяет запускать сервлеты, сервлеты работают по HTTP-протоколу, HTTP-протокол в свою очередь реализован с использованием сокетов. Но для того чтобы сокеты работали, тебе никакой Томкат не нужен, он нужен для того, чтобы развернуть сервлеты. Можно конечно внутри приложения, которое на Томкате работает, запустить прослушивание сокетов, но с тем же успехом это можно сделать и без Томката. Так что тебе нужно? Сокеты, сервлеты или сокеты на Томкате. Если все-таки сокеты на Томкате, то все делается точно так же как и без Томката.
Это сообщение отредактировал(а) tux - 21.12.2006, 13:11 |
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Еще раз опишу то, что у меня есть, вдруг что-то упустил.
1. Есть удаленный сервер. На нем стоит Томкат под Юнихом. 2. Мне нужно написать приложение, чтобы запустить его на сервере, чтобы оно прослушивало определенный порт. Какое приложение нужно писать? Как его запустить на удаленном сервере, чтобы я его мог запустить на прослушивание, уйти куда-то гулять (отсоединиться от сервера), потом прийти и выключить прослушивание? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 5 Всего: 132 |
Anton Vatchenko, давай еще раз. Для того, чтобы прослушивать сокеты достаточно простого java-приложения безо всякого Томката. Для того, чтобы подключиться к сокету на удаленной машине тоже достаточно простого java-приложения. То есть у нас, грубо говоря, один просто java-объект взаимодействует с другим просто java-объектом используя сокеты. Даже если ты к этой структуре где-то сбоку прилепишь Томкат, все равно это будет так. О сокетах можно почитать и посмотреть примеры здесь и здесь. Внимание, вопрос. В каком качестве здесь должен фигурировать Томкат? Из твоей постановки задачи это совершенно не понятно. Или это просто информация к размышлению то, что он на сервере запущен? Или я совершенно ничего не понимаю?
Добавлено @ 13:46 Или тебе таки нужен и удаленный запуск того объекта, который будет прослушивать сокет? |
|||
|
||||
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Я понимаю что одно java-приложение будет общаться с другим. Но до этого еще один этап: нужно запустить то приложение, которое будет прослушивать сокеты, на сервере. Как обычно запускается такая задача? Пока что на сервере ничего толкового не нашел, кроме как деплоймента на томкате...
|
|||
|
||||
| tux |
|
||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 5 Всего: 132 |
Ясно наконец.
Если с Томкатом, то простейший вариант написать простое веб-приложение, в котором определить ServletContextListener. Он будет стартовать при запуске приложения и существует на протяжении всего времени жизни приложения. Наверное прослушивание сокета можно реализовать в нем. Описывается примерно так:
Класс MyContextListener должен реализовывать интерфейс javax.servlet.ServletContextListener.
Для каждого запроса создается отдельный поток. Потоки работают параллельно, поэтому будет возможность обслуживать большое число соединений. Здесь пример реализации многопоточного чат-сервера - http://www.acm.org/crossroads/xrds6-1/ovp61.html. Надеюсь даст какие-то идеи. Вообще создание и разрушение потоков - это простейший вариант, обычно используют пул потоков, который лучше с точки зрения производительности, но это уже другая история. Пока Томкат работает, должен жить. |
||||
|
|||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 5 Всего: 132 |
Еще одно замечание. Чтобы запустить/остановить слушатель можно средствами Томката останавливать и запускать приложение.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |