0

Java でマルチスレッド UDP クライアント/サーバー アプリケーションを作成していますが、ちょっとした問題が発生しました。私は「解決策」を念頭に置いていますが、それがこの問題のパッチ修正であることは 90% 確信しています。

ホスト 1 のスレッドをクライアント 1 とサーバー 1 (C1 & S1)、ホスト 2 のスレッドをクライアント 2 とサーバー 2 (C2 & S2) と呼びましょう。これらはすべて Thread を拡張し、run() をオーバーライドしますが、クライアントには他のメソッド (ホスト間のチャットを開始するための chat() など) も含まれています。次に、start() を呼び出す 3 番目のクラスを介して、それぞれのクライアント/サーバーのペアを開始します。

データが流れるようにするために、C1/S2 および C2/S1 ペア用のソケットを作成し、それを介して UDP データグラムを送受信します。ただし、クライアントは他のクライアントのチャット メッセージに応答する必要があるため、S1 は C1 とも、S2 は C2 とも話す必要があります。

このコミュニケーションを設定する最良の方法は何ですか? たとえば、これらのマシンごとに(クライアントクラス/スレッドに基づいて)localhostに別のソケットを作成して、単一のホストのクライアント/サーバースレッドが互いに通信できるようにすることができると思いましたが、これは回避策ではなく回避策のようです解決策。より良い方法はありますか?

4

0 に答える 0