2

コンピューターで使用するクライアントへの配布バージョン用のswfファイルを作成しました。
そのswfファイルからTCPサーバーに接続しています。
テストする前に、AdobeWebサイトのポリシーファイルに関連する記事をいくつか読みました。

私はそれをテストしようとしました、そしてそのために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のポリシーファイルは無視されます

コードのどこが悪いのかわかり
ません。ご存知の場合は、お知らせください。
この質問を読んでくださった方に感謝します。

良い1日を。

4

1 に答える 1

1

Flash Player は、ポリシー ファイル サーバー (デフォルトではポート 843) をチェックするか、必要に応じて開いているソケット (ポート 3000) をチェックします。

ポリシー ファイル サーバーは、有効なポリシー ファイルで に応答するソケットです。メッセージで何が起こっているかは、リクエストを送信してポリシー ファイル以外のものを取得している可能性が高いため、ポート 3000 からの構文が無効<policy-file-request/>です。メッセージを受信したときにソケット経由で crossdomain.xml ファイルを返すようにソケットをプログラミングします。

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

于 2013-03-11T14:51:44.393 に答える