【问题标题】:Connecting to TCP server from flash socket on local environment从本地环境中的闪存套接字连接到 TCP 服务器
【发布时间】:2013-02-26 03:17:32
【问题描述】:

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

我尝试对此进行测试,并为此使用了 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);

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

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

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

我找不到我的代码有什么问题,
如果你知道,请告诉我
感谢阅读此问题的人

祝你有美好的一天。

【问题讨论】:

  • 其余的 as3 代码在哪里?

标签: actionscript-3 node.js cross-domain cross-domain-policy


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 2012-06-13
    • 2015-09-29
    • 2020-01-04
    • 1970-01-01
    • 2015-05-15
    • 2012-01-03
    • 1970-01-01
    • 2014-01-13
    相关资源
    最近更新 更多