AS3套接字 - 策略文件

时间:2012-09-04 04:39:40

标签: flash sockets policyfiles

我有一个迷你服务器在端口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调试器完成所有工作,直到现在才需要策略文件请求。

1 个答案:

答案 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函数以发送您的数据。