0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
|
|
1 | |
Вызов серверного сокета в клиентском08.08.2009, 15:38. Показов 1792. Ответов 13
Метки нет (Все метки)
Мой серверный сокет помещен по следующему адресу http://321.32.321.32/~account/Server.class.
Что следует написать для его вызова в клиентском сокете вместо 'Тут.Мой.Сервер.Здесь': socket = new Socket('Тут.Мой.Сервер.Здесь', 1234); ? Как тяжко. Сервер, ау-у-у!
0
|
08.08.2009, 15:38 | |
Ответы с готовыми решениями:
13
Создание Серверного Сокета Вызов контекстного серверного метода формы Копирование сокета или передача сокета в функцию Отчет в клиентском приложении |
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
||||||
08.08.2009, 20:12 | 2 | |||||
физическое положение на сервере тут не будет играть роли, если это просто обычный ява класс. тогда на сервере ты должен каким-то чудом/образом его запустить и там должны быть строки:
второй вариант - если это сервлет. тогда там все по-другому на сервере, но кажется, это не то, что тебе сейчас нужно. почитай внимательно доку на java.net.Socket , в частности методы типа setDoOutput(...);
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
08.08.2009, 20:14 | 3 |
чтобы сильно не заморачиваться, тестируй у себя на своей машине и юзай 127.0.0.1
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
|
|
09.08.2009, 01:38 [ТС] | 4 |
Так на локальной станции у меня всё почти готово!
Именно поэтому я решил опробовать это дело в реальном режиме: зарегистрировал сайт в далеке-долёком, помещу теперь туда свой сервер-класс и буду его вызывать из своего клиента прямо из дома... Но дело на самом деле серьезное. Ведь на локалхосте сервер- и клиент-класс я вызываю из консоли-канифоли, методом 'майна-майна'. Как же мне запустить мой сервер на удаленном хосте? Убрать Main() из класса вообще? К слову пришлось, вы - г-н mr_dronski, может быть скажите почему всегда по-разному инициируют Main()? Иногда пишут так (String args[])? А иногда вот так (String[] args)? Спасибо.
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
09.08.2009, 02:23 | 5 |
если у тебя не будет прямого доступа к окружению сервера через telnet/SSH, то ты никак не запустишь свой класс там (если даже ява там и есть, в чем я сомневаюсь). итог - тебе нужны сервлеты.
а про то, как писать - и так, и так можно. я предпочитаю описывать массив возле типа, а не имени - так можно слева направо читать строку как 'массив стрингов с именем х' : String[] x
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
|
|
09.08.2009, 02:46 [ТС] | 6 |
Надо-надо нырять в сервлеты.
Или, может, в JSP? В доках пишут, что JSP реализуют функциональность сервлетов. Значит ли это, что TCP/IP потоковые сокеты можно также делать в JSP?
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
09.08.2009, 03:35 | 7 |
там немного другая концепция. скорее всего, ты доберешься до HttpURLConnection и будешь писать туда так же, как и в сокет (по сути, это и будет сокет, но с 'навешенной' логикой).
сервлет будет это дело обрабатывать в одном из методов doGet/doPost и читать как поток. в общем, представь, что ты аплоадишь графический файл на сервер. главное - стандартизировать протокол между клиентом и сервером, что ты и в каком порядке будешь слать, в каком формате. ЖСП именно этот вариант плохо реализует, так что не мучайся - время сэкономишь. а для презентационной логики не сильно увлекайся включением ява кода в ЖСП - это очень плохо. сразу ориентируйся в будущем на таги и JSTL (где книжки классные скачать (англ), подскажем - я посмотрел, чел толково объясняет и проблем у тебя не будет). надеюсь, сслылку на сановский туториал по сервлетам найдешь? лучшего искать особо и не нужно.
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
09.08.2009, 03:37 | 8 |
блин, ну че я сегодня по 2 раза постинги шлю? ))
перефразирую себя - сервлеты для логики (сокеты туда же) ЖСП - для веб страничек и берут информацию, которую подготавливают сервлеты. так работают серьезные проекты. на этапе обучения ты нередко увидишь немного другую модель - но это только на этапе обучения
0
|
0 / 0 / 0
Регистрация: 02.01.2009
Сообщений: 134
|
|
09.08.2009, 09:45 | 9 |
Что такое JSTL?
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
|
||||||
09.08.2009, 15:18 [ТС] | 10 | |||||
Не удалось откомпилировать сервлет.
Очень странно. А вот классы апплетов и приложений спокойно делаются! В командной строке набирал: d:>j2sdk1.4.2injavac d:javaclassesEnterServlet.java. Получил 11 ошибок (!). Ужас. ||||||||||||||||Код очень простой||||||||||||||||||||
0
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
09.08.2009, 16:04 | 11 |
А если так
javac -classpath %J2EE_HOME%/lib/j2ee.jar d:javaclassesEnterServlet.java ? )
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
09.08.2009, 16:52 | 12 |
JSTL:
http://java.sun.com/webservices/docs/ea2/tutorial/doc/JSTL.html http://java.sun.com/products/jsp/jstl/ http://jcp.org/aboutJava/communityprocess/final/jsr052/ еще на jboss.ru найдете книжку 'JSTL in action' - рекомендую. это то, как _нужно_ писать ЖСП
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
|
||||||
14.08.2009, 02:03 [ТС] | 13 | |||||
2mr_dronski.
А сервлет не может реализовать TCP/IP соединение? Что-то вроде такого вообще возможно:
0
|
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
|
|
14.08.2009, 02:40 | 14 |
на самом деле это уже реализовано сервером. сервлет - всего лишь абстракция, до которой это соединение в конце концов доходит. поэтому, вы не открываете серверный сокет в сервлете - за вас он уже был открыт, обработан, и осталось только написать логику приложения, чего же со всеми данными делать. поэтому вы делаете не serverSocket.getInputStream(), а request.getInputStream() (serverSocket.getOutputStream() - response.getOutputStream() соответственно).
приведенный выше код отработает, но смысла в нем - ноль.
0
|
14.08.2009, 02:40 | |
14.08.2009, 02:40 | |
Помогаю со студенческими работами здесь
14
Авторизация в клиентском приложении Авторизация в клиентском приложении Удаление из БД в клиентском приложении Запуск приложения на клиентском компьютере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |