apache-flex - 第二个套接字发送上的沙箱违规

标签 apache-flex sockets flex3 sandbox

我有一个 Flex 客户端,它使用 Flash 二进制 (TCP) 套接字与 Java 服务器进行通信。我有一个 localhost (Apache) 服务器,它提供了一个 crossdomain.xml 文件,该文件在我测试时是完全打开的。

我的代码在启动时成功加载了策略文件。

然后我毫不费力地将套接字连接到服务器并发送消息并获得响应。到目前为止一切都很好。

但是,当我通过同一个套接字发送第二条消息时,我会暂停大约 12 秒,然后出现沙箱违规错误:
Security Error: Error #2048: Security sandbox violation: file:///C:/apache_root/ttt1/ttt1.swf cannot load data from localhost:45455.
这与第一条消息成功通过的端口和套接字相同。

我尝试在每次发送之前重新加载策略文件,但得到相同的结果。

知道为什么会发生这种情况吗?我显然曾经有一个打开的 socket 。我在每次发送后刷新套接字,并且在每次读取后我也尝试这样做,但结果相同。

提前致谢

编辑:
如果我在每次调用之前重新创建套接字,我的代码就可以工作。我很难相信这是正确的,但也许我缺少一个 Socket 设置。

最佳答案

据我所知,如果您使用的是二进制套接字,crossdomain.xml 不会通过 http 加载。

如果甚至查询跨域,您是否检查过 apache 的访问日志?

您可能会通过 tcp 从 flash 获得连接,要求您的 java 服务器上的文件(不使用 http。它只是发送字符串“”或类似的字符串)。留意他们。如果您没有在 3 秒(左右)内回答他们,则 flash 会引发沙盒违规。

关于apache-flex - 第二个套接字发送上的沙箱违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1673295/

相关文章:

php - 仅使用套接字将消息从 PHP 直接发送到 Node(没有 Redis 等)

apache-flex - Flex 编译时间常数 - 时间戳

java - 连接的 Flex 客户端与 GraniteDS 教程中的数据更新不同步

apache-flex - 如何对 spark 标签进行剥皮?

apache-flex - flex中的过早EOF错误

apache-flex - 如何使用 ActionScript 在给定限制内生成随机数?

c++ - 如何中断epoll_pwait来捕捉信号

php - Mysql:每个socket地址的用法

apache-flex - 在ActionScript 3.0中以编程方式在Adobe Air和Adobe Flex之间进行检测

css - AS3 从 DateField 中隐藏 textInput