2

这就是我想要做的:

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

服务器将连接到代理服务器,然后客户端将连接代理服务器并请求重定向到连接的服务器之一。例如,Client1 想要重定向到 Server3。我的问题是,一旦连接了客户端,我想将它反弹到另一个服务器。一旦绑定了套接字,您将无法对其进行反弹。有没有办法解决?

4

2 回答 2

2

鉴于套接字 API 的假设,您是正确的,连接保持绑定直到它关闭。

你的两个选择是

  1. 在客户端和服务器中编写元协议以具有虚拟连接,该连接使用多个套接字来模拟跨越多个服务器的持久连接(硬)
  2. 有一个智能代理来终止客户端套接字并根据需要连接到服务器,并假装它不存在到其他端点(根据您的代理服务,难度较小或已经为您完成。
于 2012-06-29T12:24:30.040 回答
2

我会一直使用代理 <-> 客户端连接。如果需要连接另一台服务器,只需关闭 Proxy <-> Server1 连接,然后再创建一个 Proxy <-> Server2。这样,客户端不必断开连接,重新连接到另一台服务器将是无缝的。

于 2012-06-29T12:35:03.713 回答