flex – 第二个套接字发送时沙箱违规

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

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

然后我毫无困难地将套接字连接到服务器并发送消息并得到响应.到目前为止都很好.

但是,当我通过同一个套接字发送第二条消息时,我会暂停大约12秒,然后出现沙箱违规错误:

安全性错误:错误#2048:安全沙箱冲突:file:/// C:/apache_root/ttt1/ttt1.swf无法从localhost:45455加载数据.

这是第一条消息成功通过的端口和套接字.

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

知道为什么会这样吗?我显然有一个打开的插座.我在每次发送后刷新套接字,我也尝试在每次读取后执行此操作,但结果相同.

提前致谢

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

最佳答案 据我所知,如果你正在做二进制套接字,则不会通过http加载crossdomain.xml.

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

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

点赞