日期:2014-05-17  浏览次数:20394 次

XMLSocket 连接服务器失败,帮忙看看哪问题
下面这段as代码连接失败,郁闷一整天,网上查了好多资料也没有搞明白什么原因。

package  
{
import flash.display.MovieClip;
import flash.events.*;
import flash.net.XMLSocket;
import flash.external.ExternalInterface;

public class SocketExample extends MovieClip
{
private var socket:XMLSocket;
public function SocketExample()
{
socket = new XMLSocket();
socket.addEventListener(Event.CONNECT, onConnect);
if(!socket.connect("192.168.1.72", 2900))
{
ExternalInterface.call("alert","连接失败");
}
else
{
ExternalInterface.call("alert","连接成功");
}
}
private function onConnect(event:Event):void
{
ExternalInterface.call("alert","连接中");
}
}

}

///////////////////////////////////////////////////////////////////////////

网上查的资料里说的下面4条规则我都遵守了,不知错在哪里

当与一个主机建立一个Socket连接时,Flash Player要遵守如下安全沙箱规则.
1.Flash的.swf文件和主机必须严格的在同一个域名,只有这样才可以成功建立连接.
2.一个从网上发布的.swf文件是不可以访问本地服务器的.
3.本地未通过认证的.swf文件是不可以访问任何网络资源的.
4.你想跨域访问或者连接低于1024的端口,必须使用一个跨域策略文件.


问题补充:
我的访问地址是 http://192.168.1.72/ccc.html 这个应该没有错,端口号是2900也大于1024应该也没有问题,但就是连不上
服务器是window server 2003 64位 
防火墙也都关闭了
.swf文件也是放在服务器端

------解决方案--------------------
你的flash是32位的还是64位的?

调整一下iis,试试以32位方式运行