| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Апплет и http тунель |
| Автор: Seen 13.2.2006, 17:14 |
| Есть апплет, который использует определенный модуль. Этот модуль нуждается в сервисе, доступ к которому возможен только по tcp на указанный порт. Так как клиент может сидеть за фаерволом (прокси), как можно организовать работу этого модуля через http? Я так понимаю необходимо организовать http тунель через который и будет работать этот модуль и указать ему необходимый ip и порт? |
| Автор: COVD 13.2.2006, 19:37 |
| Правильно понимаете. Вам прокси сервер нужен. Например, это сервлет, который читает запрос апплета, пересылает его по tcp на нужный сервис, читает ответ сервиса и пересылает его по http обратно апплету. |
| Автор: Seen 14.2.2006, 10:51 | ||
Я что то такое и предполагал. Я так понял апплетом нужно слушать определенный порт и заворачивать все по http в сторону сервлета, который читает запрос апплета, пересылает его по tcp на нужный сервис, читает ответ сервиса и пересылает его по http обратно апплету. И апплет отдает его модулю. Можно небольшой примерчик как такое организовать? |
| Автор: COVD 14.2.2006, 16:24 |
| Примерчиков для отдельных операций много. Вам нужно: 1. из апплета послать http запрос сервлету и прочитать ответ. 2. в сервлете читать http запрос апплета и отправлять ответ апплету. 3. в сервлете открыть сокетное соединение с сервисом, послать туда запрос и прочитать ответ. А вот как все это связать уже зависит от задачи. Применение http определяет протокол коммуникации в виде "запрос - ответ". Если вас это устраивает, и протокол может быть stateless , т.е. не надо хранить информацию в промежутке между запросами, то все относительно просто. |
| Автор: Seen 14.2.2006, 17:03 | ||
Есть еще один этап: Апплетом слушать tcp порт и запрос перенаправлять по http сервлету. после получения http ответа отдавать по tcp запрашиваемому модулю. Все это понятно. А вот сама реализация мне интересна. Во всяком случае спасибо. Буду искать примеры. |
| Автор: Seen 15.2.2006, 11:18 | ||
Как бы понятнее объяснить... Есть апплет, которому для работы необходим определенный модуль. Этот модуль может получать информацию только по tcp. ip и порт куда должен обращаться модуль я ему указываю. Так вот если клиент за фаерволом я как раз и думал сделать прокси (второй апплет) к которому по tcp:\127.0.0.1:port обращается модуль из основного апплета. И вот этот второй апплет инкапсулирует запрос в http отдает сервлету и далее как описано выше. |
| Автор: COVD 15.2.2006, 16:31 |
| понятно. вот с организации общения апплета с внутренним модулем и стоило бы начать, потому что это самый нестандартный пункт |