0

我有一个在 Silverlight 中开发的应用程序,它必须连接到另一个我无法控制的旧应用程序,该应用程序需要在 3005 端口上建立 TCP 连接。

我无法修改旧版应用程序以将端口置于 silverlight 接受范围 (4502 - 453x)。

是否有桥接应用程序/另一种解决方案可以在可配置端口(例如 4502)上侦听并将所有内容转发到另一个端口(例如 3005)?反之亦然.. 从该套接字接收并将其推回“我”?

我有什么选择?

4

2 回答 2

3

我相信这被称为端口转发

大多数路由器都可以做到这一点。

在 Linux 机器上,您可以使用 iptables。例如在 Windows 上使用this

如果我正确理解 silverlight 套接字安全模型,silverlight 应用程序只能连接到从中下载它的主机,并且只能连接到某个端口范围(80、4502-4532 [顺便说一句,有谁知道为什么选择该特定端口范围?])。

因此,要从 SL 连接到您的旧版应用程序,您必须...

任何一个:

  • 在提供 SL 应用程序的服务器上运行端口映射(可能是运行 IIS 的 Web 服务器,对吗?这意味着它是一个 Windows 框,因此搜索“端口映射窗口”,PortMapper似乎很受欢迎。)
  • 将端口映射器配置为将端口 45xx 转发到运行旧版应用程序的服务器上的端口 3002(可能与 Web 服务器相同的服务器?)

或者:

如果到 Web 服务器的所有流量都必须通过您可以控制的某个路由器,您可以在那里配置端口映射。

于 2009-09-25T09:31:38.290 回答
2

如果流量通过防火墙或 NAT 路由器,它可能可以配置为执行此操作。

否则,您始终可以编写一个服务来侦听您想要的端口并将其转发到 3005 端口。但是,当服务器以某种方式使用客户端的 IP 地址时,这可能会导致问题。

服务器上的一些防火墙软件应该可以做到这一点。

于 2009-09-25T09:33:46.733 回答