2

これは私がやりたいことです:

+--------+                          +--------+
|        |                          |        |
| Server |---+                  +---| Client |
|        |   |                  |   |        |
+--------+   |                  |   +--------+
             |                  |
+--------+   |   +--------+     |   +--------+
|        |   |   |        |     |   |        |
| Server |---+---+  Proxy +-----+---+ Client |
|        |   |   |        |     |   |        |
+--------+   |   +--------+     |   +--------+
             |                  |
+--------+   |                  |   +--------+
|        |   |                  |   |        |
| Server |---+                  +---| Client |
|        |                          |        |
+--------+                          +--------+  

サーバーはプロキシ サーバーに接続し、クライアントはプロキシ サーバーに接続し、接続されたサーバーの 1 つにリダイレクトされるように要求します。たとえば、Client1 は Server3 にリダイレクトされることを望んでいます。私の問題は、クライアントが接続されたら、それを別のサーバーに再バインドしたいということです。一度バインドされたソケットを再バインドすることはできません。とにかくこのあたりはありますか?

4

2 に答える 2

2

私は常にプロキシ<->クライアント接続を確立するために行きます。別のサーバーに接続する必要がある場合は、プロキシ<-> Server1接続をシャットダウンし、別のプロキシ<->Server2を作成するだけです。このように、クライアントは切断する必要がなく、別のサーバーへの再接続がシームレスになります。

于 2012-06-29T12:35:03.713 に答える
2

ソケット API の仮定を考えると、あなたは正しいです。接続は閉じられるまでバインドされたままです。

あなたの2つのオプションは

  1. クライアントとサーバーにメタプロトコルを記述して、複数のサーバーにまたがる永続的な接続をシミュレートするために多数のソケットを使用する仮想接続を確立します (ハード)
  2. クライアントソケットを終了し、必要に応じてサーバーに接続し、他のエンドポイントには存在しないふりをするスマートプロキシを用意します(プロキシサービスに応じて、それほど難しくないか、すでに完了しています.
于 2012-06-29T12:24:30.040 に答える