|
|
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Ранее никогда не сталкивался с сокетами, но понадобилось ... Теорию сокетов, создание сокет-сервера (слушателя), агента и прочее прошел, вроде ничего сложного в организации нет. Однако не могу привязать это к своей системе :(: стоит Apache HTTP Server (80 порт), Tomcat (8080), проект построен на связке JSP-servlets, ну и БД. Для того, чтобы мне запустить сокет-сервер, это надо делать ручками как отдельный проект (java-application или сервер)? Или можно просто запустить его при первом обращении к сервлету из init()? Одним словом, плиз, поделитесь информацией - как происходит взаимодействие клиента (это будет окно браузера, в котором флеш и клиент - XMLSocket из стандартной библиотеки AS) и сервера (в моем случае связка JSP-servlet). Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 17:16:12 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
В твоем случае Init метод сервлета будет нормальным решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 17:40:12 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckРанее никогда не сталкивался с сокетами, но понадобилось ... Теорию сокетов, создание сокет-сервера (слушателя), агента и прочее прошел, вроде ничего сложного в организации нет. Однако не могу привязать это к своей системе :(: стоит Apache HTTP Server (80 порт), Tomcat (8080), проект построен на связке JSP-servlets, ну и БД. Для того, чтобы мне запустить сокет-сервер, это надо делать ручками как отдельный проект (java-application или сервер)? Или можно просто запустить его при первом обращении к сервлету из init()? Одним словом, плиз, поделитесь информацией - как происходит взаимодействие клиента (это будет окно браузера, в котором флеш и клиент - XMLSocket из стандартной библиотеки AS) и сервера (в моем случае связка JSP-servlet). Спасибо. Не совсем понятно о каком сокете идет речь? Нужно чтоб было свое приложение на основе java.net.ServerSocket которое слушало бы какой-нибудь порт (отличный от 80 и 8080 раз на них уже Апачи и Томкат запущены) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 17:52:33 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Ну, все достаточно примитивно: игровой сайт, в окошке мультиигра, поэтому периодические запросы не подходят - нет эффекта риал-тайма. Игра на флеше, организация клиента-сокета реализовывается посредством класса XMLSocket (это особого значения не имеет, поскольку это всего лишь клиент). А вот как реализовать на сервере сокет-сервер, я не очень понимаю. Класс, который слушает и создает экземпляр ServerSocket, создал и запустил. Но вот как он "услышит" клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:34:43 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckКласс, который слушает и создает экземпляр ServerSocket, создал и запустил. Но вот как он "услышит" клиента? Клиент должен к нему постучаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:37:23 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВ твоем случае Init метод сервлета будет нормальным решением. Ващет-то специально для таких вещей придуманы LifecycleEvent'ы. В Tomcat'е они есть, насколько я помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:52:18 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
А можно пару слов подробнее? - Я не слышал, чтобы знать куда копать ... :) Это понятно, что должен постучать ... Но ... Сайт имеет адрес ххх.ххх.ххх.ххх (читай - ххх.ххх.ххх.ххх:80), на входе его отрабатывает Апач и на локалхост:8080 передает Томкету - контейнеру, который уже запускает необходимые сервлеты (классы). А вот если сокет-агент постучится к серверу с запросом ххх.ххх.ххх.ххх:4444 (к примеру), то кто его услышит? - Неужели созданный класс вешается на этот порт сервака и сам его "слушает" (Апач-то игнорирует любой порт, кроме 40 и https)? Если это так, то Ой! - чего-то я недопонял ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 21:17:30 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckА можно пару слов подробнее? - Я не слышал, чтобы знать куда копать ... :) Это понятно, что должен постучать ... Но ... Сайт имеет адрес ххх.ххх.ххх.ххх (читай - ххх.ххх.ххх.ххх:80), на входе его отрабатывает Апач и на локалхост:8080 передает Томкету - контейнеру, который уже запускает необходимые сервлеты (классы). А вот если сокет-агент постучится к серверу с запросом ххх.ххх.ххх.ххх:4444 (к примеру), то кто его услышит? - Неужели созданный класс вешается на этот порт сервака и сам его "слушает" (Апач-то игнорирует любой порт, кроме 40 и https)? Если это так, то Ой! - чего-то я недопонял ... Его услышит ваш сокет-сервер :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:35:17 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Софтверный проктолог BlazkowiczВ твоем случае Init метод сервлета будет нормальным решением. Ващет-то специально для таких вещей придуманы LifecycleEvent'ы. В Tomcat'е они есть, насколько я помню. Ващет-то такая привязка к контейнеру нафиг не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:47:11 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckА можно пару слов подробнее? - Я не слышал, чтобы знать куда копать ... :) Это понятно, что должен постучать ... Но ... Сайт имеет адрес ххх.ххх.ххх.ххх (читай - ххх.ххх.ххх.ххх:80), на входе его отрабатывает Апач и на локалхост:8080 передает Томкету - контейнеру, который уже запускает необходимые сервлеты (классы). А вот если сокет-агент постучится к серверу с запросом ххх.ххх.ххх.ххх:4444 (к примеру), то кто его услышит? - Неужели созданный класс вешается на этот порт сервака и сам его "слушает" (Апач-то игнорирует любой порт, кроме 40 и https)? Если это так, то Ой! - чего-то я недопонял ... Если чезер собственный сокет делать, то можно помести в метод init() сервлета запуск нового потока в котором будет запускаться бесконечный цикл по ожиданию соединения ServerSocket на 4444 порту (если никто его не занял) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Второй вариант - задеплоить на том же Тоmcat но по другому адресу web приложение состоящее из сервлета, который будет обмениваться сообщениями по протоколу, который нужно разработать, с клиент-сокетом Flash-приложения, а не писать html выходной поток. ip адрес и порт будут таким же как и у Тоmcat но адрес сервлета на Тоmcat будет другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:52:29 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Хотел написать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:53:16 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Только прямо запускать сокет-сервер из сервлета нельзя - тут же виснет в бесконечном цикле, надо в параллельном процессе. А вот тут я что-то совершенно запутался с одновременной реализацией класса "public class Server extends Thread" - что-то он у меня параллельно не хочет запускаться. Наберусь наглости попросить подсказать правильный толчок к запуску этого сокет-сервера в параллельном процессе. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 06:06:09 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckТолько прямо запускать сокет-сервер из сервлета нельзя - тут же виснет в бесконечном цикле, надо в параллельном процессе. А вот тут я что-то совершенно запутался с одновременной реализацией класса "public class Server extends Thread" - что-то он у меня параллельно не хочет запускаться. Наберусь наглости попросить подсказать правильный толчок к запуску этого сокет-сервера в параллельном процессе. Спасибо. Вы решили проигнорировать мою реплику про Lifecycle Event'ы — дело ваше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 10:39:38 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
Софтверный проктологВащет-то специально для таких вещей придуманы LifecycleEvent'ы. В Tomcat'е они есть, насколько я помню. IDVsbruckА можно пару слов подробнее? - Я не слышал, чтобы знать куда копать ... Вобще-то нет ... Я просто даже слов таких раньше не слышал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 11:31:58 |
|
||
|
Откуда запускать сокет-сервер?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckТолько прямо запускать сокет-сервер из сервлета нельзя - тут же виснет в бесконечном цикле, надо в параллельном процессе. А вот тут я что-то совершенно запутался с одновременной реализацией класса "public class Server extends Thread" - что-то он у меня параллельно не хочет запускаться. Наберусь наглости попросить подсказать правильный толчок к запуску этого сокет-сервера в параллельном процессе. Спасибо. Лучше Runnable реализовать в новом классе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. А потом в init() запустить поток Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 12:32:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34892676&tid=2144223]: |
0ms |
get settings: |
20ms |
get forum list: |
39ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
79ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 412ms |
| total: | 664ms |

| 0 / 0 |
