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