Лучший фреймворк для сетевого программирования Java? - PullRequest
3 голосов
/ 19 марта 2012

Я новичок в сети Java, и у меня есть небольшой проект, который я хочу скачать в сети LAN и использовать только пять пользователей.

Я хочу использовать Java swing, MySQL для базы данных и eclipse в качестве IDE. Так что же является лучшей средой для облегчения сетевого программирования, потому что я не хочу начинать с нуля.

Я читал о Нетти и Апаче Мине, и я не знаю, хорошо ли это для меня в моем случае.

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

см. Ссылку netty-vs-mina .Ваш вопрос о «лучшем» не является по-настоящему форматом и не должен задаваться на этом форуме.

0 голосов
/ 09 октября 2017

Этому вопросу 5 с половиной лет, но на него еще не ответили и не закрыли. Вот почему я пишу это, предполагая, что спрашивающий имел в виду Модель сервера-клиента .


Я бы порекомендовал проверить 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());

Что объясняется более подробно здесь .


NOTINGS

Обратите внимание, что этот проект только что запущен, а документация еще продолжается.

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

...