我有一个迷你服务器在端口843上监听<policy-file-request/>
然后我发送以下内容:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
在我的闪存方面,连接代码看起来像
m_socket = new Socket("127.0.0.1", 4600);
m_socket.addEventListener(ProgressEvent.SOCKET_DATA, OnSockData);
m_socket.writeUTFBytes(String.fromCharCode(255) + String.fromCharCode(0));
m_socket.flush();
我有一个单独的服务器侦听端口4600,它希望从客户端获取char 255,但它永远不会被发送。已建立端口4600上的连接,但从不发送数据。
端口843上的迷你服务器成功从客户端获取连接并发送策略文件。
因此,要么政策文件提交存在问题(我不知道如何检查AS3)。或者选项2是由于某种原因在初始连接过程中数据丢失。
P.S。如果我没有在端口843上运行迷你服务器,则端口4600上的服务器将收到策略文件请求(根据AS3协议)。
我很感激有关如何查看此处的任何提示。我不确定出了什么问题。我一直在通过flash调试器完成所有工作,直到现在才需要策略文件请求。
答案 0 :(得分:2)
您可能需要带有doctypes的完整XML。此外,您可能还需要实际限制端口。试试这个:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy><allow-access-from domain="*" to-ports="4600" /></cross-domain-policy>
编辑:尝试m_socket.addEventListener(Event.CONNECT, connectHandler);
,然后创建connectHandler
函数以发送您的数据。