6

私は大学のプロジェクトをやっています。Java ソケット プログラミングのピア ツー ピア プログラムのサンプル プログラムが必要です。どこでも、クライアント プログラムにサーバー ソケットを追加するように言われています。

サーバーソケットとクライアントソケットを持つ単一のプログラムで問題を解決できますか?または、システムを開始するプログラムと、問題を解決するために3回実行されるピアプログラムの2つのプログラムを作成する必要がありますか?

クライアントサーバーモデルのソケットプログラムの実行方法を知っており、概念を明確にしています。しかし、ピア ツー ピア アーキテクチャを作成することは、理解するのが複雑に思えます。

このスレッドも参考にしました。

2番目にコメントされた人は、「peer2peerアプリを作成するには、各クライアントもサーバーソケットを開きます。クライアントAがクライアントBに接続したい場合、そのソケットに接続するだけです」と述べています。

ピア ツー ピアの Java ソケット プログラムがどのように機能するかについて、さらにサンプルと説明が必要です。jxta のような外部 API でこのタスクを実行する必要はありません。それがどのように機能するかについての明確な画像が必要です。

4

1 に答える 1

11

サーバーソケットとクライアントソケットを持つ単一のプログラムで実行できますか

はい。実際、これはP2Pアプリケーションを実装するための通常の方法です。

しかし、ピアツーピアアーキテクチャを作成することは、私が理解するには複雑に聞こえます。

特に複雑なことはありません。ピアツーピアプログラムは、実際にはどちらの役割を果たすこともできる単なるクライアント/サーバープログラムです。また、一般的な「1つのサイズですべてに対応する」ピアツーピアアーキテクチャなどは存在しないため、「アーキテクチャ」という言葉はここではあまり追加されません。「ピアツーピア」というラベルは、特定のアーキテクチャ、フレームワーク、またはAPIではなく、実際にはシステムの一般的な特性に関するものです。(フレームワークとAPIは存在しますが...)

しかし、 Javaのサンプルコードを含むこの紹介に出くわしました。これがソケットレベルから問題に近づくかどうかはわかりませんが、正直なところ、ソケットレベルのクライアント/サーバーの開発方法を知っていて、並行プログラミングを理解している場合は、2つを組み合わせてシンプルなP2Pを提供します。

于 2012-09-12T03:28:39.787 に答える