Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java GUI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
#1

Java клиент, PHP сервер. Обмен сообщениями

06.04.2012, 09:03. Просмотров 1945. Ответов 6
Метки нет (Все метки)

Здравствуйте, товарищи формучане

Попал в затруднительное положение, помогите советом\наставлением.
В общем, имеется клиент на Java, точнее на JavaFX. Он должен обмениваться сообщениями с сервером, который написан на PHP.

Первой мыслью было сделать всё через сокеты, но ведь что бы PHP скрипт "слушал" необходимый порт и ждал данных нужно его сначала удалённо "дёрнуть". В итоге, из-за недостатка опыта ни в Java ни в PHP, реализовать данное не получилось.

Пожалуйста, подскажите как можно реализовать данную связь обмена сообщениями. Возможно тут и не сокетами нужно работать. Буду рад любому рабочему варианту, т.к. сдача курсовой уже 25 апреля, все остальные части проекта работают, осталось только научить "говорить" клиент и сервер=)

P.S. кстати, может кто ещё подскажет, как лучше реализовать "контейнеры" для передачи сообщений? Сообщения могут быть как и элементарные - одной строчкой или словом. Так и довольно сложные списки. Сам я реализовал данную часть задачи по средством передачи xml сообщений и дальнейшим парсингом, который приводит содержимое сообщения в довольно ужасную структуру вида Map<String, List<Map<String, String>>> - это лист, т.е. имя листа указывает на список вида ключ->значение. Работать, как Вы понимаете с таким не просто. Может кто подскажет более лучшее решение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 09:03
Ответы с готовыми решениями:

Обмен сообщениями между формами
Проблема такая: есть одно окно , на нём кнопка &quot;ввести данные&quot; , при нажатии...

Есть клиент на Java, есть сервер на PHP
Объясните пожалуйста, есть клиент на Java, есть сервер на PHP, надо чтобы...

Java сервер c# клиент
Доброго времени суток. Собственно нужно сделать сабж, а именно сервер на Java,...

Сервер - Java, Клиент - VB6 - основные варианты построения системы
Подскажите, пожалуйста, какие могут быть наиболее реальные варианты построения...

Можно ли в Java передавать данные по сети допустим с андроида в PHP сервер???
Можно ли в Java передавать данные по сети допустим с андроида в PHP сервер???

6
XHelp
80 / 80 / 8
Регистрация: 10.06.2011
Сообщений: 258
07.04.2012, 00:28 #2
Что значит "дёрнуть" удалённо? php скрипт поидее вообще не слушает ничего а вызывается веб сервером/интерпретатором.
Насчёт P.S. тоже не понял. Ты же сам переводиш xml в эту "ужасную структуру". Переводи в то, что для тебя будет удобнее.
0
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
07.04.2012, 11:18  [ТС] #3
"Дёрнуть" со стороны Java клиента, по моему мнению, выглядит так:
Java
1
2
3
4
HttpURLConnection uc = (HttpURLConnection) new URL("mysite.com/somescript.php").openConnection();
uc.close()
Socket socket = new Socket("mysite.com", 8080);
// передача\прём данных
С PS уже разобрался. Там главный вопрос был как распарсенное хранить, что бы можно было удобно пользоваться полученными данными. Сделал просто обычную Properties с составным ключём, т.е. если идёт обращение к обычной переменной сообщения, то это выглядит так:
Java
1
message.getProperty("attr_name");
а если, например, к элементу списка в сообщении, то так:
Java
1
message.getProperty("list_name.1.attr_name");
где 1 - индекс элемента списка
0
XHelp
80 / 80 / 8
Регистрация: 10.06.2011
Сообщений: 258
07.04.2012, 13:53 #4
Передавай свои сообщения через GET или POST. Примеров для этого полно в интернете. Тогда не нужно будет ничего "дёргать"
0
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
07.04.2012, 21:38  [ТС] #5
Меня смущает, что передача данных осуществляется через $_POST и echo, на стороне сервера.

Я с PHP знаком совсем недавно, но разве такой подход приемлем? Я имею ввиду для передачи небольших объёмов данных это применимо, более того, на начальной стадии, когда я уже отказался от сокетов, я, в тестовых целях, пользовался механизмом почти в точности повторяющий Ваш. Только пересылаемые данные были тестовые и малых объёмов. Сейчас же я собираюсь переправлять xml сообщения бОльших объёмов.

Я думал для этого есть какой нибудь специальный механизм и т.п. К тому же, мы через POST же вроде можем отправить ограниченное количество информации...пожалуйста, поправьте меня, если я не прав.

Не то что бы система, которую я разрабатываю, будет работать с огромными данными, повсеместно использоваться и ежедневно пропускать через себя террабайты трафика. Просто в этой работе я приследую цель научиться работать с PHP и Java, набраться опыта, и, так сказать, научиться делать всё по науке=)
0
mutagen
2564 / 2237 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2012, 23:39 #6
как по мне так вас ожидают грабли с двух сторон и как вы будете их решать не зная ни PHP ни Java, а только собираясь научиться?

ограничен только метод GET (так как он в адресной строке), POST зависит от сервака который его обслуживает.
вот к примеру в пыхе
php.ini
; Maximum size of POST data that PHP will accept.
post_max_size = 8M

tomcat по умолчанию на 2 МБ
но его можно снять
/conf/server.xml
XML
1
maxPostSize="0"
до анлима
0
XHelp
80 / 80 / 8
Регистрация: 10.06.2011
Сообщений: 258
08.04.2012, 00:13 #7
Цитата Сообщение от G-Cat Посмотреть сообщение
Я с PHP знаком совсем недавно, но разве такой подход приемлем?
В http для передачи данных есть GET и POST. Так что это не только приемлемый подход, а еще и единственный.
Создавать сокет из пхп что бы к нему подключится и передать данные - это как поход из-за зубной боли к проктологу: он может и поможет, но через одно место.
0
08.04.2012, 00:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2012, 00:13

Сервер и клиент - распределение обязанностей, нагрузка на сервер
Пишу сервер и клиент для работы с таблицами данных по сети, информация хранится...

Java applet и JavaScript - обмен данными
Добрый день. У меня такой вопрос как организовать обмен данными между Java...

Обмен данными между приложениями Java и Visual Basic
Всем привет! Пишу программу в двух разных средах (Visual Basic и Java)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru