当前位置:首页 > 多媒体 > Flash

FLASH 发起多个跨域联接,无法并行执行

优良自学吧提供FLASH 发起多个跨域联接,无法并行执行,FLASH 发起多个跨域连接,无法并行执行例如: 我的swf中发起五个socket连接分别连接[2001-2005]端口,只有端口2005是我的本地server应用程序的端口,可以跨域通信。其他几个端口都没有在侦听。 这时如果是非跨域连接,2005端口的soc

FLASH 发起多个跨域连接,无法并行执行
例如:
我的swf中发起五个socket连接分别连接[2001-2005]端口,只有端口2005是我的本地server应用程序的端口,可以跨域通信。其他几个端口都没有在侦听。
这时如果是非跨域连接,2005端口的socket会马上得到响应。
如果是跨域连接(192.168.10.2上的swf访问127.0.0.1的端口),必须等到前面4个端口连接失败(而且是顺序的),2005端口的socket才能响应。抓包看到的就是每隔1秒向一个端口发送连接,失败后再向下一个端口发起连接。
  FLASH 发起多个跨域联接,无法并行执行
/*****************************************/
[LOG]:
4/16/2014 12:22:16.533 ALL start connect port:30001
4/16/2014 12:22:16.534 ALL start connect port:30002
4/16/2014 12:22:16.534 ALL start connect port:30003
4/16/2014 12:22:16.535 ALL start connect port:30004
4/16/2014 12:22:16.535 ALL start connect port:30005
错误: 请求位于 xmlsocket://192.168.75.112:30001 的资源(请求者从 http://192.168.75.111:8080/client.swf发出请求)失败,原因是无法访问服务器。

*** 安全沙箱冲突 ***
到 192.168.75.112:30001 的连接已停止 - 不允许从 http://www.p2pclient.com/P2PClient.swf[/url] 进行连接
错误: 请求位于 xmlsocket://192.168.75.112:30002 的资源(请求者从 http://192.168.75.111:8080/client.swf 发出请求)失败,原因是无法访问服务器。

*** 安全沙箱冲突 ***
到 192.168.75.112:30002 的连接已停止 - 不允许从 [url]http://www.p2pclient.com/P2PClient.swf 进行连接
错误: 请求位于 xmlsocket://192.168.75.112:30003 的资源(请求者从http://192.168.75.111:8080/client.swf 发出请求)失败,原因是无法访问服务器。

*** 安全沙箱冲突 ***
到 192.168.75.112:30003 的连接已停止 - 不允许从 http://192.168.75.111:8080/client.swf  进行连接
错误: 请求位于 xmlsocket://192.168.75.112:30004 的资源(请求者从 http://www.p2pclient.com/P2PClient.swf 发出请求)失败,原因是无法访问服务器。

*** 安全沙箱冲突 ***
到 192.168.75.112:30004 的连接已停止 - 不允许从 http://www.p2pclient.com/P2PClient.swf 进行连接

4/16/2014 12:22:24.625 ALL 连接成功
/********************************/
发起5个连接的代码:
public function connect(port_:uint):void
{
                        close();
                        socketDic = new Dictionary();
                        for(var port:uint=30001; port<30006; ++port)
                        {
                                var socketNew:Socket = newSocket();
                                socketNew.timeout = 5000;
                                socketDic[socketNew] = port;
                                socketNew.connect(HOST, port);
                                LogHelper.info("start connect port:"+port);
                        }

}

------解决思路----------------------
这个flash本来就是单进程的。根本没有并发概念。。。。

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢