2011-04-11 11 views
0

私は、サーバーアプリケーションを実行する必要なしに、2つ以上のクライアントソケットを直接接続する方法を探しています。私はいくつかの方法を探し求めました.JXTAのP2Pプロトコルが見つかりました。 JXTA以外の選択肢があるかどうかを知りたいだけです。2つ以上のクライアントソケットを直接接続する方法は?

相互作用するクライアントの基本的な機能は、(1)クライアントが他のすべてのクライアントにメッセージを送信し、(2)他のクライアントが使用できるファイルを要求できることです。

私は自分のコンピュータ(localhost)上でアプリケーションの複数のインスタンスを実行しているので、NATやファイアウォールは問題ではありません。

+0

接続を受け入れるか、UDPの場合は要求を受け取り、** IS **という定義でサーバーを受け取ります。したがって、あなたが望むのは論理的に不可能だと私には思われます。 – Ingo

+0

それで、各クライアントはクライアントと、他のすべてのクライアントとの接続を維持するサーバーの両方でなければならないと言っていますか? UDPやTCPの方が良いでしょうか? –

+0

あなたが言うように、それはUDPのようなにおいをします。サーバーはリクエストを処理するものに過ぎません。ファイルを交換する場合は、誰か(クライアント)が要求を出します。たとえば、どのファイルがありますか?答える人はサーバーです。 – Ingo

答えて

0

あなたはmulticast socketsが必要です。

This questionには、それらを実装するために必要なすべてのコードが含まれているようです。

これは、LAN上で実行されているアプリケーションにのみ適していることに注意してください。異なるネットワーク間(通常は1つの大規模ネットワークの異なるセグメント間で)のマルチキャストをサポートするには、ルータのサポートが必要です。

+0

@Anonの説明をお寄せいただきありがとうございますが、デバイスはLAN /ネットワーク経由で接続されていませんか?彼らはどうやってお互いを見つけましたか? – gumuruh

0

あなたはHazelcastを見ましたか?ほとんどゼロの設定で、List、Set、Mapなどの共通コレクションと、パブリッシュ/サブスクライブメカニズムの分散実装を提供します。デフォルトでは、ノード間のマルチキャスト通信が使用されます。

関連する問題