0

まずは長めのタイトルで申し訳ありませんが、質問を考えると適切なタイトルが思いつきませんでした。

今問題に。私はピアツーピアチャットアプリケーションを作成しています。このアプリケーションは、ファイルを送受信すると同時に、個々の連絡先とチャットすることもできます。

サーバーに接続しているクライアントのIPをキャプチャして保存し、そのユーザーが別のユーザーとのチャットセッションを開始したときに取得できることを理解しています。その保存されたIPを使用して、ServerSocketを使用して2つのクライアント間の接続を作成できます。

しかし、セキュリティ上の理由から、あるユーザーのIPを別のユーザーのコンピューターに渡したくないので、基本的に、各クライアントにIPを渡さずに2つのクライアントを接続する方法があります。

だから例えば

(all sockets have read / write buffers )

Client 1-- logs in --> Server ( a session ID 1 is created between the client 1 and server )
Client 2-- logs in --> Server ( a session ID 2 is created between the client 2 and server )

Client 1 --- Starts chat with client 2 ---> Server ( server connects session 1 and session 2)

Client 1 can then chat and send files to client two without passing it the ip.

これが不明確な質問または愚かな質問である場合は申し訳ありませんが、私はこの質問をグーグルでさえする方法を考えることができませんでした。

4

1 に答える 1

0

サーバーを介して接続を実行する必要があります。サーバーを使用して、2つのクライアント間の接続をバッ​​ファリングし、ほぼシームレスに見える方法で通信を接続できます。

たとえば、両方のクライアントが接続されている限り、クライアント1からの入力を待機し、すぐにクライアント2にパイプするスレッドを作成できます。その逆も同様です。これはあなたが探していた種類の解決策ですか?

于 2013-01-31T00:14:10.123 に答える