Tidtcpserver 监听多端口?

Tidtcpserver listening on multiports?

好吧,我正在尝试理解这种方法,假设我有 运行 2 个服务器

服务器 A 的 IP 为 1.1.1.1,端口为 36663 服务器 B 在 ip 2.2.2.2 和端口 54223

我要求能够理解这种方法

我可以让服务器 A 上的客户端能够与服务器 B 上的客户端通信吗? 例如,客户端正在连接服务器 A 并想向连接到服务器 B 的客户端发送一些数据,这可以使用 indy tcp 服务器完成吗?

如果答案是肯定的,一个例子将有助于完全理解这种方法。

我在不同的机器上有 2 个服务器

1 台机器网络速度较慢,另一台机器网络良好。

这里的逻辑是当客户端到serverA的连接时间超过20秒,在这20秒内尝试重新连接到其他服务器ip并能够与已经连接到serverA的客户端通信

TIdTCPServer 有一个 Bindings 属性,它是服务器侦听的 IP/Port 对的集合。您可以让一个 TIdTCPServer 对象监听多个 IP/Port 对,或者您可以使用多个 TIdTCPServer 对象监听不同的对,在同一台机器上.

无论哪种方式,连接的客户端都存储在 TIdTCPServer.Contexts 属性.

当一个客户端要向另一个客户端发送数据时,无论它连接到哪个服务器IP/Port,您所要做的就是遍历[=​​15=]适当[=]的列表10=] 对象,直到找到目标客户端的 TIdContext 对象,然后就可以访问它的 Connection.IOHandler 属性.


另一方面,如果您在 不同的机器 上有单独的 TIdTCPServer 个对象 运行,则客户端无法直接与另一台服务器上的客户端通信。您必须在两台服务器之间建立连接,然后您可以根据需要通过该连接代理任何 client-to-client 数据。