2つのクライアントを(TCP / IPソケット経由で)接続したい。クライアントは、中間サーバーを使用してお互いを検出できます。クライアントがお互いを発見したら、サーバーが関与することはありません。
私はこれについていくつかの研究をしました、そして多くの人々が提案しているのを見つけましJXTA
た。しかし、私は自分でプロトコルを最初から作成したいと思います(将来、WebSocketを使用して同じものを実装する必要があるかもしれないため(クライアントがブラウザーの場合))。現在、私のクライアントはデスクトップアプリケーションまたはモバイルアプリケーションです。
私の質問は次のとおりです。
クライアントはサーバーでどのようにお互いを発見しますか?サーバーがクライアントのグローバルIPアドレスを相互に送信する場合、その情報はピアツーピア接続を作成するのに十分ですか?クライアントが同じLANネットワーク上にあり、サーバーが別のWAN上にある場合はどうなりますか?
クライアントは動的IPアドレスを持っています。アクティブなソケットがある場合でも、IPが突然変更される可能性はありますか?
ピアツーピア接続は、(チャットアプリケーションのように)非連続データの転送に対して信頼性がありますか?
[注:ピアツーピア接続とは、クライアントの1つを一時的なソケットサーバーとして作成することにより、(Javaを使用して)クライアントサーバーTCP/IPソケット接続を確立することを意味します]
前もって感謝します。