私はVB.Netでチャットアプリケーションを開発しています。これは "安全な"チャットプログラムになります。すべてのトラフィックは暗号化されます(私はこれに最善のアプローチを見つける必要がありますが、それは今のところ問題ではありません)。中央サーバのないチャットプログラム
現在、プログラムが動作しています。私はサーバーアプリケーションとクライアントアプリケーションを持っています。しかし、私はそれが動作するための中央サーバーを必要としないようにアプリケーションをセットアップしたいです。
ネットワークの分散化にはどのような方法がありますか?
私はクライアントを開発してサーバーとしても機能するようにする必要があると思います。
クライアントは、どのサーバに接続する必要があるかを知っていますか、サーバがダウンしている場合はどうなりますか?どのようにクライアント/サーバは、中央サーバを持たずにネットワーク内に他のノードが存在するのでしょうか?
私はクライアントにIPアドレスが異なるノードが何であるかを知ることを望んでいませんが、中央サーバを持たなくても可能です。
このアプリケーションはVB.Netで書かれていますが、この時点で言語は本当に重要ではないと思います。
私が従うことのできるさまざまなアプローチを知りたいだけです。
密接に関連:[Skypeはポート転送せずに仕組み](http://stackoverflow.com/questions/1539339/how-skype-work-without-port-forwarding) –
興味深い読書でしたが、私はそれが本当に関連しているとは思っていません。 。 Skypeは目的地にメッセージを送信しようとします(これはチャットセッション内の複数の目的地、例えば接続されている全員)。これを行うには、クライアントは、私が避けたいと思うすべての異なるアドレスを知る必要があります。 2番目のスカイプは、クライアントAがクライアントBに直接接続できない場合に使用するすべての異なるアドレスを保持する中央サーバを使用します。スカイプの投稿が間違っていると分かっているかどうか教えてください。 – PeeHaa