2013-03-11 52 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