0

私は、クライアントが特定のアクションを実行し、このメッセージに基づいてクライアントサーバーに信号を送信するメインサーバーがあり、メインサーバーへの応答。ここにはメインサーバーが1つしかなく、複数のクライアントサーバーになることができます。ある時点で、メインサーバーは複数のクライアントに複数の信号を送信できます。 私は現在、2つのポートを使用してJavaでソケットプログラミングを使用してこれを行う予定です。これを達成する最善の方法を教えてください。また、使用できる既存のAPIがありますか?Javaでのクライアントサーバー通信の最良の方法

+0

[websockets](http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html)について聞いたことがありますか?おそらくそれはあなたのためのものではありませんが、それはあなたが望むもののようです。 – Gendarme

答えて

0

RMI:https://docs.oracle.com/javase/tutorial/rmi/を見てください。ソケット/ TCP/UDP/etcに基づいて何かをしたい場合は、Nettyで何かを書くのがよい解決策かもしれません - >http://netty.io/(役に立つ例があります)。

サーバーとクライアントの間の通信が完全ではなく、Nettyのようなライブラリによって提供されるすべてのものを必要としない場合は、プレーンJavaソケットを検討することをお勧めします。

+0

Mateuszの詳細をありがとう。 NettyとRMIがオープンソースであるかどうかを知りたかったのですか?クライアントとサーバー間の通信もスケジュールされます。ここでサーバーはWebアプリケーションですが、クライアントはWebベースではなく、サーバーが必要とするアクションを実行するだけで、詳細を戻します。Javaまたはシェルなどのスクリプトでもかまいません。 – user2899524

+0

Nettyはオープンソースであり、RMIはJava EEでビルドされているため、ライセンスについて心配する必要はありません。通信をスケジュールする必要がある場合は、それを個別に実装する必要があります。私は[Quartz](http://www.quartz-scheduler.org/)(opensource)にそれをお勧めします。それは多くの機能を持っていますが、使用するのは非常に簡単です。どんなサーバーでもWebアプリケーションとクライアントになります。適切な通信インターフェースを提供しても問題ありません。私は、Javaサーバーアプリケーションと、Java、C、Pythonで書かれた他の多くのワーカーとの間で通信するためにNettyを使用しました。 –

関連する問題