3

私はJavaネットワーキングの初心者で、LANネットワークにダウンロードして5人のユーザーだけが使用したい小さなプロジェクトがあります。

Java swing、データベースには MySQL、IDE には eclipse を使用したいと考えています。ネットワークプログラミングを簡単にするための最良のフレームワークは何ですか?最初から始めたくないからです。

私は Netty と Apache Mina について読みましたが、それが私の場合に適しているかどうかはわかりません。

4

2 に答える 2

3

netty-vs-minaリンクを参照してください。「ベスト」に関するあなたの質問は、真の Q&A 形式ではないため、このフォーラムで質問するべきではありません。

于 2012-03-20T04:10:09.290 に答える
0

この質問は 5 年半前のものですが、回答もクローズもされていません。質問者がServer-Client-Modelを意味していると仮定して、これを書いているのはそのためです。


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());

ここで詳しく説明します。


注意事項

このプロジェクトはちょうどライブになったばかりで、ドキュメントはまだ進行中であることに注意してください。

このフレームワークはまだベータ版であることにも注意してください。プロダクションでの使用はお勧めしませんが、個人的な使用については検討します。

于 2017-10-09T10:48:56.553 に答える