【问题标题】:ActionScript socket in AndroidAndroid 中的 ActionScript 套接字
【发布时间】:2012-02-20 21:47:06
【问题描述】:

我有一个用 ActionScript 编写的 Flash 客户端应用程序,它使用 XMLSocket 类通过 TCP/IP 在端口 5750 上与服务器设备通信。例如,我可以在浏览器中运行 Flash 客户端并连接到互联网上的服务器。

由于最新版本的 Android 支持 Flash,我希望当我们在 Android 设备上安装 Flash 客户端时,它可以工作。但是,连接尝试只是挂起。我目前在客户端没有任何诊断,只有正在运行的 Flash 应用程序。所以我们没有日志或标准错误消息。

服务器设备基本上是一个黑匣子,但很明显服务器永远不会从客户端获得请求。这表明客户端无法打开套接字。

基本的网络搜索表明,人们对这种情况知之甚少。对这里出了什么问题有任何想法吗?

例如,也许 XMLSocket 不能在 Android 中工作?还是安卓屏蔽了 5750 端口?还是 Flash Player 内置了某种沙盒或防火墙限制?

我们尝试了几种运行 Android 2.2-2.3 和 Android Flash Player 10-11 的不同 Android 设备。客户端是用 ActionScript 2 编写的。

【问题讨论】:

    标签: android flash actionscript xmlsocket


    【解决方案1】:

    这可能是安全设置问题

    我想您在 Android 设备上运行的 Flash 客户端与服务器不在同一个域中。 Adobe 的 AS2 参考说明了一切:

    XMLSocket.connect() 方法只能连接到 SWF 文件所在域中的计算机。此限制不适用于在本地磁盘上运行的 SWF 文件。 (此限制与 loadVariables()、XML.sendAndLoad() 和 XML.load() 的安全规则相同。)要连接到在 SWF 所在域以外的域中运行的服务器守护程序,您可以在服务器上创建允许从特定域访问的安全策略文件

    设置服务器以与 XMLSocket 对象进行通信可能具有挑战性。如果您的应用程序不需要实时交互,请使用 loadVariables() 函数或基于 Flash HTTP 的 XML 服务器连接(XML.load()、XML.sendAndLoad()、XML.send()),而不是 XMLSocket班级。要使用 XMLSocket 类的方法,首先必须使用构造函数 new XMLSocket 来创建 XMLSocket 对象。

    您的问题还有一些其他相关问题,值得一看:

    XMLSocket working in firefox but not IE

    Flash client XMLSocket not connecting to server

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      相关资源
      最近更新 更多