2011-12-16 5 views
0

サーバーに接続する複数のインターネット接続(ルーターなどの背後にある)でクライアントアプリケーションを実行している場合。 5人がいると言いますが、3人がサーバーによって互いに存在していることを伝えられます。そのうちの3人がメッセージを送信すると、他の2人がメッセージを受信すると、これらのメッセージはすべて受信されます最初のサーバーや他の2つのクライアントが情報を送受信しなくても、3つのクライアントだけが接続されていますか?どのようにルータやファイアウォールを通過することができますか?希望は意味をなさない。ある意味ではライブピアツーピア群

編集

、(絶対に必要な場合を除き)ではないサーバーを経由して、お互いに直接話を3つのクライアントの間の小さなプライベートネットワークを作成。おそらく十分な帯域幅を持つ別のクライアントを経由して接続

+0

これは実際にはC#の質問ではありません... – Justin

+0

本当ですか?私はWCFがそういうことをすることができるどこかを見たと思った。さらに、xboxシステムはうまく動作し、C#の派生語である – topherg

+0

WCFはC#とは何の関係もありません。 –

答えて

1

へのオープンな場合、私はあなたが:)を書いたもの見当もつかないが、それはおそらく助けることができる:

http://msdn.microsoft.com/en-us/magazine/cc700336.aspx

http://www.codeproject.com/KB/WCF/WPFWCF_Chat_App_via_P2P.aspx

+0

ええ、私はその前にピークがありましたが、それはルータ間の接続を作成するのに十分なトンネリングを行いますか、またはnetPeerTcpBindingは依然として外部サーバーに接続します。さらに、指定されたバインディングアドレス(つまり、特定のクライアントセットを指している "net.p2p://WPFChatMesh/rolandrodriguez.net/wpfchat")の名前解決はどのようにして行われますか? )? – topherg

+0

最後のビットを気にせず、ただPNRPで読む – topherg

0

回答は以下のとおりです。常にではない。異なるNATの背後にある2つのピアが直接通信することは不可能である場合があります。パブリックIPアドレスを持つ中央のピアを経由する必要があります。

関連する問題