[英]Impossibility to connect to a java server with AS3
我在AS3中使用XMLSocket腳本遇到麻煩。 我有一個Java服務器,正在嘗試發送XML數據,但服務器未收到任何信息。 最令人驚訝的是,我的腳本在一個月前運行良好,現在我的IOError偵聽器返回了我:
“錯誤#2031:套接字錯誤。URL:在Client_fla :: MainTimeline / frame1()的test()處為127.0.0.1”
和我的SecurityError偵聽器:
“錯誤#2048:違反安全沙箱:file:/// C | /Documents%20and%20Settings/Zeph/Bureau/Client.swf無法在Client_fla :: MainTimeline /的test()加載127.0.0.1:18000的數據。 frame1()”
我嘗試更改IP,在另一台計算機上嘗試,並嘗試提取腳本的舊版本,該版本未更改,沒有任何結果。
我只是不明白為什么它停止了這樣的工作。 這是我的腳本:
package
{
import flash.net.XMLSocket;
import flash.events.*;
import flash.display.MovieClip;
public class test extends MovieClip
{
public function test()
{
trace("pouet");
var xmlsock:XMLSocket = new XMLSocket();
xmlsock.connect("127.0.0.1", 18000);
var xmlFormattedData = new XML('<message pseudo="Nix" value="Coucou !"/>');
xmlsock.send(xmlFormattedData);
xmlsock.addEventListener(DataEvent.DATA, onData);
xmlsock.addEventListener(IOErrorEvent.IO_ERROR, ioerror);
xmlsock.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secuerror);
xmlsock.send(xmlFormattedData);
}
private function onData(event:DataEvent):void
{
trace("[" + event.type + "] " + event.data);
}
private function ioerror(event:IOErrorEvent):void
{
trace(event);
}
private function secuerror(event:SecurityErrorEvent):void
{
trace(event);
}
}
}
我對此很生氣,有人有想法嗎?
謝謝閱讀!
如錯誤所示,您遇到了沙箱安全違規。 這意味着Flash不允許其應用程序域以外的資源。 基本上有兩個修復程序,一個比另一個簡單得多:
閱讀有關如何創建和加載跨域xml的內容 。 這只是正在運行的Flash應用程序讀取的服務器上的“策略”。 正確設置可能很棘手,但這是公認的方法。
在輸出設置的“本地播放安全性”下,您可以檢查“訪問網絡文件”,而不是“僅訪問本地文件”,從而快速解決問題。
希望有幫助!
該錯誤表明,您正在從本地文件系統運行Flash應用程序,並且此應用程序要向(您的Java服務器)發出網絡請求。
默認情況下不允許這樣做。 您可以執行以下兩項操作之一:
在Flash Player中更新“全局安全性設置”(右鍵單擊,高級設置,全局安全性設置,然后將Flash文件或整個文件夾設置為允許進行網絡請求)
從Web服務器運行Flash應用程序(並確保Java服務器上已存在crossdomain.xml)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.