2

我正在考虑用 Adob​​e AIR 编写一个应用程序,但我想先弄清楚这在平台上是否可行。(大多数是 Flash 和 AIR 的新手)

我想做的是提前知道a将使用哪个本地端口。URLRequest如果可能的话,我想保持连接打开,并继续使用同一个套接字。

我基本上想要完成的是提前进行一些 NAT 遍历和端口协商。一旦我已经协商好客户端和服务器,我希望它们连接并基本上以对等方式使用 HTTP 来流式传输媒体,例如这个示例:

var s = new air.Sound(); 
var url = "http://www.example.com/sounds/bigSound.mp3"; 
var req = new air.URLRequest(url); 
var context = new air.SoundLoaderContext(8000, true); 
s.load(req, context); 
s.play();

问题是我看不到这种情况发生,除非我可以从 AIR 获得一些关于它计划使用哪些端口的信息。我可以创建自己的Socket与服务器的连接并使用它们,但我需要一种方法来利用 Sound 框架以相同的方式从套接字流式传输。

想法?想法?谢谢!

4

1 回答 1

0

即使您设法猜测 AIR 将在您的设备上使用哪个端口,它也不会很有帮助,因为如果您的 AIR 设备具有私有 IP ,您的 NAT 很有可能会将其转换为另一个值地址。

如果您的 AIR 服务器具有公共 IP 地址,则不会发生此问题。大多数情况下,您可以将服务器的 NAT/路由器配置为按原样转发流量。来自 WAN 的端口扫描将快速告诉您使用了哪个端口。

如果您想“劫持”由 AIR 本身创建的出站连接,那么您可能会尝试让它联系您已实现的特殊服务器对等方,该对等方将转发来自和向其的流量。不简单,但可能。基本上你会收集服务器在 NAT 上打的洞。

于 2011-04-13T19:38:45.533 回答