在本地环境中从闪存套接字连接到TCP服务器

我已经做了一个分发版本的SWF文件给客户端在他们的电脑上使用。
我有一个从该swf文件连接的TCP服务器。
在testing之前,我已经在Adobe网站上阅读了一些与政策文件有关的文章

我试图testing一下,并使用了nodejs和swf文件

但我失败了 这是它的样子。

在根上的crossdomain.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="3000" /> </cross-domain-policy> 

tcp_server.js

 var sys = require("sys"), net = require("net"); var server = net.createServer(function(stream) { stream.addListener("connect", function() { sys.puts("Client connected"); stream.write("hello\r\n"); }); stream.addListener("data", function(data) { sys.puts("Received from client: " + data); stream.write(data); }); stream.addListener("end", function() { sys.puts("Client disconnected"); stream.write("goodbye\r\n"); stream.end(); }); }); server.listen(3000, "localhost"); 

本地swf文件

 import flash.net.Socket; var socket:Socket = new Socket(); trace(socket); trace("a socket is created"); socket.connect("localhost", 3000); 

无论如何,这似乎是一个很长的代码

我testing了一下,发现了这个错误

对于错误的代码,xmlsocket:// localhost:843中的策略文件将被忽略

我找不到我的代码有什么问题,
如果你知道,请让我知道
感谢谁读这个问题

祝你今天愉快。

Flash Player将检查策略文件服务器(默认情况下为端口843),或者在必要时检查您打开的套接字(对于您的端口3000)。

策略文件服务器是一个使用有效的策略文件来响应的套接字。 你的消息发生的事情很可能是它发送了它的请求,并得到了一个策略文件以外的东西,因此端口3000的语法是无效的。编程套接字,当它有一个<policy-file-request/>消息。

更多http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html