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



我制作了一个分发版本的swf文件给客户在他们的计算机上使用。
我有一个TCP服务器从那个swf文件连接。
在测试之前,我在adobe网站上阅读了一些有关策略文件的文章

我试着测试,并使用nodejs和swf文件,

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

crossdomain.xml on root

<?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("hellorn");
});
stream.addListener("data", function(data) {
    sys.puts("Received from client: " + data);
    stream.write(data);
});
stream.addListener("end", function() {
    sys.puts("Client disconnected");
    stream.write("goodbyern");
    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);


我测试了一下,得到了这个错误

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

我找不到我的代码有什么问题,
如果你知道,请告诉我
谢谢你看这个问题

祝你今天愉快。

Flash Player检查策略文件服务器(默认端口843),或者必要时检查您打开的套接字(对您来说,端口3000)。

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

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

相关内容

  • 没有找到相关文章

最新更新