我有一个在 Silverlight 中开发的应用程序,它必须连接到另一个我无法控制的旧应用程序,该应用程序需要在 3005 端口上建立 TCP 连接。
我无法修改旧版应用程序以将端口置于 silverlight 接受范围 (4502 - 453x)。
是否有桥接应用程序/另一种解决方案可以在可配置端口(例如 4502)上侦听并将所有内容转发到另一个端口(例如 3005)?反之亦然.. 从该套接字接收并将其推回“我”?
我有什么选择?
我有一个在 Silverlight 中开发的应用程序,它必须连接到另一个我无法控制的旧应用程序,该应用程序需要在 3005 端口上建立 TCP 连接。
我无法修改旧版应用程序以将端口置于 silverlight 接受范围 (4502 - 453x)。
是否有桥接应用程序/另一种解决方案可以在可配置端口(例如 4502)上侦听并将所有内容转发到另一个端口(例如 3005)?反之亦然.. 从该套接字接收并将其推回“我”?
我有什么选择?
我相信这被称为端口转发。
大多数路由器都可以做到这一点。
在 Linux 机器上,您可以使用 iptables。例如在 Windows 上使用this。
如果我正确理解 silverlight 套接字安全模型,silverlight 应用程序只能连接到从中下载它的主机,并且只能连接到某个端口范围(80、4502-4532 [顺便说一句,有谁知道为什么选择该特定端口范围?])。
因此,要从 SL 连接到您的旧版应用程序,您必须...
任何一个:
或者:
如果到 Web 服务器的所有流量都必须通过您可以控制的某个路由器,您可以在那里配置端口映射。
如果流量通过防火墙或 NAT 路由器,它可能可以配置为执行此操作。
否则,您始终可以编写一个服务来侦听您想要的端口并将其转发到 3005 端口。但是,当服务器以某种方式使用客户端的 IP 地址时,这可能会导致问题。
服务器上的一些防火墙软件应该可以做到这一点。