2013-03-11 61 views
2

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

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

我试图测试,并且已经使用了和的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当地

import flash.net.Socket; 

var socket:Socket = new Socket(); 
trace(socket); 
trace("a socket is created"); 

socket.connect("localhost", 3000); 

这似乎是一个长码

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文件,反正

我测试了它,并得到这个错误

的错误代码,在的XMLSocket策略文件://本地主机:843会被忽略

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

有一个愉快的一天。

+0

其中是as3代码的其余部分? – 2013-03-11 19:24:07

回答

1

Flash Player会检查策略文件服务器(默认情况下为端口843),或者如果需要,请在要打开的套接字(适用于您的端口3000)上进行检查。

策略文件服务器是一个套接字,它用一个有效的策略文件来响应。您的邮件发生的事情很可能是它发送了请求并获取了策略文件以外的内容,因此端口3000的语法无效。 编程套接字在收到<policy-file-request/>邮件时将您的crossdomain.xml文件通过套接字返回。

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