Этому вопросу 5 1/2 лет, но он еще не получил ответа и не был закрыт. Вот почему я пишу это, предполагая, что спрашивающий имел в виду Модель-Сервер-Клиент < / а>.
Я бы рекомендовал попробовать NetCom2. Это простая в использовании структура, которая поддерживает высокую модульность для будущих улучшений.
Концепция, лежащая в основе этого фреймворка, может показаться довольно странной, поскольку он построен как "по сети". Event-Bus. Связь состоит в основном из объектов, летающих по сети, и серверов / клиентов, которые на это реагируют.
На сервере вы должны написать java-программу, которая может выглядеть так:
public class ServerMain {
private ServerStart serverStart;
public ServerMain(int port) {
serverStart = ServerStart.at(port);
}
public void start() throws StartFailedException, ClientConnectionFailedException {
serverStart.launch();
serverStart.acceptAllNextClients();
}
}
А потенциальный Клиент будет выглядеть так:
public class ClientMain {
private ClientStart clientStart;
public ClientMain(String address, int port) {
clientStart = ClientStart.at(adress, port);
}
public void start() throws StartFailedException {
clientStart.launch();
}
}
Вот как вы создаете и запускаете Сервер и Клиент.
Вы можете указать и Клиенту, и Серверу, как реагировать на определенные объекты. Это должно быть сделано перед [clientStart / serverStart] .launch (), указав:
clientStart.getCommunicationRegistration()
.register(MessageObject.class)
.addFirst(messageObject -> System.out.println(messageObject));
serverStart.getCommunicationRegistration()
.register(MessageObject.class)
.addFirst((session, messageObject) -> session.send(messageObject));
Теперь вы можете отправить что-то с Клиента на Сервер, указав:
clientStart.send(new MessageObject());
Этот пример в основном представляет собой эхо-сервер, который объясняется здесь .
Связь между ними более подробно можно найти здесь или здесь.
Если вы ошеломлены полученным результатом, вы можете отрегулировать его, указав:
// Choose only one.
NetComLogging.setLogging(Logging.trace());
NetComLogging.setLogging(Logging.debug());
NetComLogging.setLogging(Logging.info());
NetComLogging.setLogging(Logging.warn());
NetComLogging.setLogging(Logging.error());
NetComLogging.setLogging(Logging.disabled());
Более подробно это объясняется здесь.
ЗАМЕЧАНИЯ
Обратите внимание, что этот проект только что запущен, и документация все еще продолжается.
Также обратите внимание, что этот фреймворк все еще находится в стадии бета-тестирования. Я бы не рекомендовал его для производственного использования, но я бы посмотрел на него для личного использования.
person
Thorben Kuck
schedule
09.10.2017