2011-08-11 9 views
0

通常、サーバーとクライアントのペア、またはソケットを介して相互に接続する2つのピアがあります。これは1対1の関係です。ソケットは「グループ」設定ですか?

あなたには6人の同僚がいます。 1つのピアがudp/tcpメッセージを別のピアに直接送信できるように、「サーバ」なしでグループ化する方法はありますか?

私は基本的に、各関係ごとに別々のソケットを設定しなくてもこれを行う方法を探しています。

これが可能ならば、正しい用語は何ですか?

+0

あなたは[MPI](http://en.wikipedia.org/wiki/Message_Passing_Interface)のようなものを探しているようですね。 –

答えて

0

UDPソケットは、sendto()機能を使用して、非接続ソケットを介してデータを送信できます。指定されたエンドポイントは、指定されたIP /ポートで待機している必要がありますが、すでに接続を開始している必要はありません。

+0

)。だから、私は各ピアに同じポートでリッスンしてもらうことができます。そのポートを介して右のIP?接続されているポートと接続されていないポートの間にパフォーマンスの違いはありますか?これはまったくマルチキャストに関連していますか? – Luke

+0

すべてのポートが同じポートでリスンされるようにするには、マルチキャストがまさに必要なものです。あなたのすべてのソケットはマルチキャストグループに参加することができ、すべてのソケットはすべてが受信するデータを送信することができます。 – Chad

+0

sendto()とマルチキャストがどちらも良い答えだったので、受け入れられた回答を選択するのは厳しいものでした。しかし、sendto()はより具体的であり、マルチキャストは同じサブネットを持つことに依存しているようです。 1つ以上のマシンにメッセージを送信するためにsendto()を使用し、同じサブネット上にあるコンピュータを検出するためにブロードキャスト/マルチキャストを使用します。 – Luke

1

UDPでは簡単な方法はありませんが、UDPの場合はmulticastです。

+0

マルチキャストで、グループ内の1台または数台のマシンに選択的に送信することを決定できますか?これはソフトウェアのみのソリューションであると仮定し、どのような例(OS XまたはLinux)ですか? – Luke

+0

イーサネットマルチキャストは実際にはハードウェアで処理されます。 IPマルチキャストは、特定のソケットが複数のグループに参加することを許可します。例えば、一般的なコミュニケーションのための1つのグループと、アプリケーションの "ドメイン"のためのいくつかの特定のグループを持ちます。 Forewarning - スイッチ/ルータの明示的なサポートが必要なため、マルチキャストは通常​​WAN上では動作しません。例として、あなたはネット上にたくさんあるものを見つけるでしょう。 –

+0

私はLAN経由でこれをやっています。だからルータ/モデムの設定(純粋なソフトウェア)を乱さずにこれを行うことができますか、これはネットワーク上で特別な設定が必要ですか? – Luke

関連する問題