2つのソケットをブリッジする

2つのソケットをブリッジする

私は疑問に思った可能です2つをつなぐ着信 TCP/IP のソケット。
例:

Client A  ----->  Server  <----- Client B

サーバーは両方のクライアントにマジックを送信し、サーバーをバイパスして相互に接続します。

                  Server
Client A  ----------><---------- Client B

アップデート:

その考え方は、クライアントがリッスンするポートにバインドできない場合でも、サーバーの助けを借りて相互に接続を作成できるようにすることです。

たとえば、クライアント A とクライアント B はサーバーとの TCP ソケットを持っています。ユーザー A はユーザー B とチャットすることにし、ユーザー B とのブリッジ要求とともにサーバーとの新しい TCP 接続を作成します。サーバーはその要求をクライアント B に送信し、そのチャット ライン用にサーバーとの新しい TCP 接続も開きます。

これで、サーバーがAとBの両方のチャット接続を持つ場合、それらをブリッジしてサーバーなしで動作できるようになり、その結果、サーバーは2人のユーザーが共有するすべてのメッセージとファイルを処理する必要がなくなります。これがアイデアです。

答え1

両方のクライアントが同じネットワーク上にあるかどうかは不明です。そうではないと想定します。そうでなければ、この質問は発生しなかったでしょう。

上記の仮定から、1 つのクライアントが TCP/IP パケットを他のクライアントに直接送信することはできないため、ブリッジが絶対に必要になります。したがって、一般的な答えは、これは不可能であり、仲介者としてブリッジが常に必要になるということです。

ただし、2つのクライアントが両方ともルーターを介してインターネットに接続されている場合は、たとえば次のようにしてインターネットをブリッジとして使用することができます。プナットソフトウェア。詳細については、この答え私の。

関連情報