4
服务策略文件闪存二进制套接字连接失败我想在Flash中设置一个二进制套接字连接到服务器以外的其他服务器。继Adobe的套接字策略文件的文档,我服务,从目标服务器的843端口此文件:从服务策略文件从非843
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.mysite.com -->
<cross-domain-policy>
<allow-access-from domain="*" to-ports="6666" />
</cross-domain-policy>
然后我用下面的AS3代码连接到6666端口:
sock.addEventListener(Event.CLOSE, closeHandler);
sock.addEventListener(Event.CONNECT, connectHandler);
sock.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
sock.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
sock.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
sock.connect('myserver', 6666);
该作品完美。但是当我尝试从843以外的端口提供策略文件时,事情变得很糟糕。如果我将策略文件服务器设置为在端口6669上侦听,并在尝试连接之前更改我的Flash代码并添加此呼叫:
Security.loadPolicyFile("xmlsocket://myserver:6669");
..那么连接将只能工作大约一半的时间,否则当安全错误#2048时不会发生安全错误。我检查了这些实例,策略文件服务器甚至没有收到客户端返回xml文件的请求。
从843或6669服务器的服务器代码是完全一样的。我已经检查过空字节是在xml字符串之后发送的,我也尝试过使用Adobe的样本策略文件服务器,结果。
+1好留言/研究 – Nate
请添加您的结果并将其标记为已回答,以便其他人可以看到您的解决方案/结果! :) – Nate