silverlight tcp隧道/桥接

时间:2009-09-25 09:20:29

标签: silverlight tcp port

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

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

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

我有哪些选择?

2 个答案:

答案 0 :(得分:3)

我相信这被称为port forwarding

大多数路由器都可以这样做。

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

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

所以要从SL连接到你的遗留应用程序,你必须......

或者:

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

或者:

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

答案 1 :(得分:2)

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

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

服务器上的某些防火墙软件应该可以执行此操作。