![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Подкиньте рабочий скелет tcp client
please! -------------------- |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
я написал свой java class loader, подскажите, пожалуйста, что нужно сделать, чтобы запускался именно он, а не java.lang.classloader?
[email protected] |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
вообще то это мой топик!!!
-------------------- |
|||
|
||||
| SVK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 22.5.2003 Репутация: нет Всего: 1 |
Не ясно, что за клиент, куда коннектится, что должен делать?
В простейшем варианте cocket-коннекция через tcp/ip можно сделать, например, так: import java.net.*; import java.io.*; ... int port=2345; Socket socket = new Socket("127.0.0.1", port); BufferedInputStream is = new BufferedInputStream(socket.getInputStream()); PrintStream os = new PrintStream(socket.getOutputStream()); Возможно много вариантов с "is / os" классами - RTFM. |
|||
|
||||
| Alone |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Клиент tcp, неважно куда коннектится, должен посылать данные в сокет. Должен читать данные из сокета и отдавать на обработку. (я думал это стандартная ситуация...) ладно. Вот кусок кода из программы:
после этого имеем : 1. апплет стартовал нормально. 2. ввод данных для передачи в сокет прошел нормально 3. при выполнении makeCall(number) получаем:
хотя отдельно взятый пример выполняется нормально.
в связи с вышесказанным - HEEElp!!! -------------------- |
||||||||
|
|||||||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Так: частично разобрался.
Если приложение собирать как самостоятельное (с блоком main() ) или располагать код работы с сокетами в пределах коструктора, то все работает. Но если код расположен дальше конструктора, то запрещено использование компонентов типа java.net.* Кто подскажет как разрешить их использование Краем мозга понял, что тут замешан SecurityManager, но кто он и с чем его подавать Может кто знает? -------------------- |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Хух! сделал!!!
Все дело в том, что из аплета, выполняемого браузером нельзя приконнектиться на localhost. а в экспериментах я именно его и указывал. Лечится либо правкой файла java.policy (что не есть хорошо) либо не выпендриваться перед SecurityManager и использовать нормальные IP_Addr (not localhost) всем удачи! -------------------- |
|||
|
||||
| SVK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 22.5.2003 Репутация: нет Всего: 1 |
Все правильно - я когда-то коннектился из апплета к серверу. В т.ч. и к localhost-у.
IP в этом случае можно давать так: 127.0.0.1 (работает и без сети). |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Фигня получается...
мой адр 192.168.10.5 при попытке ломится на localhost - получаю access denied SocketPermission 127.0.0.1:3490 если вместо имени указываю ipaddr интерфейса (192.168.10.5) - все ок. а при попытке указать другой адр. например 192.168.10.6 - опять получаю access denied... Где грабли -------------------- |
|||
|
||||
| SVK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 22.5.2003 Репутация: нет Всего: 1 |
Апплет может законнектиться через сокет только на тот хост, с которого он загружен (Codebase). Это сделано по соображениям безопасности.
Т.е. указать какой-то другой ip не получится. Есть еще trusted апплеты. Наверное, они должны быть подписаны цифровой подписью и как-то прописаны в броузере юзера. Как сделать trusted апплет - не знаю. Не уверен также, что это решит проблему. |
|||
|
||||
| Alone |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Исправить положение удалось дописью строки
в файл <PATH_TO_JAVA>/jre/lib/security/java.policy
Мало верится в такой жесткий подход... Наверняка есть способы делать это. Ну ничего, "будем искать" (с)Бриллиантовая рука -------------------- |
||||
|
|||||
| SVK |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 22.5.2003 Репутация: нет Всего: 1 |
Боюсь, что это поможет только на localhost. В JVM у юзера, загрузившего апплет по сети, ведь ничего не пропишешь.
А насчет "Апплет может законнектиться через сокет только на тот хост, с которого он загружен" - я уверен на 99% - давно не делал апплетов. Надо почитать доку. |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Хм... В принципе, это меня бы устроило, т.к. апач, субд, и все остальное, будут крутиться на одном серваке.
-------------------- |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
С политикой все сделано правильно - так SUN и предполагал
делать сам. А вообще есть еще способ - на сервере, с которого загружается апплет, запускается демон, который слушает какой-то порт и рассылает запросы уже сам. И тогда апплет коннектится к этому демону и демон работает в качестве прокси. |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
В принципе, так и задумано. Ток этот демоненок не проксей будет, а полноценным сервером.
Будет слушать порт, принимать коннекты клиентов, и по tcp-шному каналу будет обрабатывать их комманды. Я ж говорю, единственная проблема - если этот демон вдруг будет расположен на другой машинке... -------------------- |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |