Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 13
1

Связь сервера и клиента

05.11.2017, 16:57. Показов 379. Ответов 4
Метки нет (Все метки)

Всем привет. Вопрос не из жизни, а из обучения.
У меня есть прилага - несколько jar файлов(8). В прилаге есть условно меню и backend. Запускаю jar с меню, а он уже работает с остальными jar-ками.
Мне теперь нужно разделить все это на клиентскую и серверную часть, на 2 отдельных проекта. Связь между ними через сокеты.
Не понимаю как и в каком порядке это должно работать.

Например у меня есть контроллер в бэкенде, где лежат все нужные мне методы по работе с данными.
Есть у меня какой-то пункт меню в клиентской части "Удалить пользователя". Чтобы это сделать мне нужен контроллер из бэкенда. Как его получить? Ведь если я отделю клиент от сервера, то у меня не будет доступа к этому классу. Или все мои классы будут в клиентском приложении а на сервере только сокет и файлы с данными? Не понимаю.

Может кто-нить на пальцах объяснить, как правильно теперь разделить проект на клиент и сервер?

Добавлено через 4 часа 3 минуты
Уточню вопрос. Я хочу на сохранить какие-то данные. На клиенте нажимаю "Сохранить". Через сокет передаю какой-то объект на сервер. Сервер его получает. Но дальше что? Нужно же вызвать определенный метод сервиса, который отвечает за сохранение информации. Он по идее лежит на сервере. Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2017, 16:57
Ответы с готовыми решениями:

Отправить с java сервера файл экселя на принтер клиента
Доброго времени суток форумчане. Есть такая задача как отправка на печать на принтер клиента эксель...

Советы по созданию Веб клиента для сервера написанного на java
Нужно создать проект, который будет работать по принципу клиент-сервер. Сервер пишу на java. На...

Как правильно разделить работу сервера и клиента
Доброго времени суток! Подскажите вот по какой теме. Хочу сделать простейшую сетевую игру. И...

Как сохранять общие классы для Клиента и для Сервера?
В клиент-серверном приложении создал Класс, объектами которого пользуюсь для отправки данных. Класс...

__________________

Записывайтесь на профессиональные курсы Java-разработчиков
Обучение в Java Mentor с оплатой после трудоустройства
4
941 / 685 / 229
Регистрация: 28.04.2013
Сообщений: 1,923
05.11.2017, 17:53 2
Брр... какой то поток малосвязанных между собой слов в пермешку с вкраплениями выдуманного жаргона

В сети ходит одна цитата:

Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно.
Если вам действительно нужно решить проблему, попробуйте еще раз описать что вы хотите, только так, что бы даже дебил понял что вам нужно.
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 13
05.11.2017, 17:58  [ТС] 3
Сори за непонятность. Тут чтобы сформировать вопрос нужно нормально разбираться в теме. Попробую еще раз.

Вопрос такой. Была одна прилага состоящая из нескольких jar файлов. Теперь это делится на клиентскую и серверную часть(2 отдельных проекта). Как я понимаю связь между ними будет происходить через сокеты. Как передать простую информацию через сокеты понятно. Но на данный момент в моей прилаге в клиентской части используются методы контроллера серверной части. Например, добавить пользователя. У меня есть пункт меню, после выбора которого вызывается метод контроллера. BackendController.addUser(user)(передаю объект юзера). Т.е. на данный момент у меня все в одном проекте, и есть доступ к контроллеру. Но когда я это все разделю, то я уже не смогу просто так вызвать его метод. Как мне реализовать это? Какова будет последовательность работы программы?
0
941 / 685 / 229
Регистрация: 28.04.2013
Сообщений: 1,923
05.11.2017, 18:11 4
andreyatake,

Когда вы это разделите, у вас будет 2 независимых друг от друга приложения. Т.е у каждой части будут свои контроллеры (но это не точно, зависит от того как у вас с ООП в приложении =) ).

Может попозже, если не лень будет хелловорлдик вам набросаю.
0
7 / 7 / 2
Регистрация: 19.05.2014
Сообщений: 134
14.12.2017, 18:29 5
Взаимосвязь между клиентом и сервером можно реализовать при помощи rest-сервиса. Там взаимодействие происходит через http. Почитай про веб-сервисы, их реализацию на java. По факту особо и не отличается от mvc контроллеров.

Пример:
У тебя есть контроллер, который удаляет пользователя из бд по его никнейму.
На этот контроллер надо навесить определенный url, к примеру /api/deleteUserByNickname
Пример контроллера с аннотацией из фреймворка Spring MVC
Java
1
2
3
4
@RequestMapping(value="api/rest/deleteUserByNickname/{nickname}")
public void getleteUser(@PathVariable("nickname")){
    //тут логика по удалению пользователя
}
Запустив этот сервер ты можешь обращаться по этому урлу через браузер -> юзер будет удаляться.
В твоем случае тебе надо проделать это средствами java.
Для этого в клиентском приложении надо создать объект httpClient. Очень много библиотек и способов его создать, погугли.
Далее через этот клиент обращаешься к своему серверу по твоему урлу, где находится нужная логика.
Примеры реализации http клиента см здесь https://www.mkyong.com/java/ap... -examples/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2017, 18:29

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отправка массива с сервера Java на клиента Java android
Подскажите, пожалуйста, как объявить массив на сервере и затем передать этот массив на экран...

Связь клиента и сервера
Продолжаю мучить Lua. Нагуглил примеры работы с сокетами, теперь эксперементирую. Вот накатал две...

Связь сервера и клиента на роутере
Здравствуйте. Имеется компьютер, подключенный к интернету(3G модем), роутер и ноутбук. Хочу...

Связь сервера и клиента Lotus
Всем доброго времени суток. С лотусом начал работать недавно, а потому возник такой вопрос:...


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

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

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