无法使用 AS3 连接到 Java 服务器
Posted
技术标签:
【中文标题】无法使用 AS3 连接到 Java 服务器【英文标题】:Impossibility to connect to a java server with AS3 【发布时间】:2011-07-15 06:57:54 【问题描述】:我在使用 AS3 中的 XMLSocket 脚本时遇到问题。我有一个 java 服务器,我正在尝试发送 XML 数据,但服务器没有收到任何内容。最令人惊讶的是我的脚本一个月前运行良好,现在我的 IOError 监听器返回我:
“错误 #2031:套接字错误。URL:127.0.0.1 在测试() 在 Client_fla::MainTimeline/frame1()"
还有我的 SecurityError 监听器:
“错误 #2048:违反安全沙箱:file:///C|/Documents%20and%20Settings/Zeph/Bureau/Client.swf 无法从 127.0.0.1:18000 加载数据。 在测试() 在 Client_fla::MainTimeline/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);
我对此很生气,有人知道吗?
感谢阅读!
【问题讨论】:
【参考方案1】:错误表明,您正在从本地文件系统运行 Flash 应用程序,并且该应用程序想要(向您的 java 服务器)发出网络请求。
默认情况下不允许这样做。您可以执行以下两项操作之一:
在您的 Flash 播放器中更新您的全局安全设置(右键单击、高级设置、全局安全设置,然后将 Flash 文件或整个文件夹设置为允许进行网络请求)
从网络服务器运行您的 Flash 应用程序(并确保 java 服务器上有一个 crossdomain.xml)。
【讨论】:
我使用 wamp 在服务器(使用跨域)上测试我的应用程序,并且它可以正常工作。非常感谢!【参考方案2】:正如您的错误所示,您遇到了沙盒安全违规问题。这意味着 Flash 不允许来自其自身以外的应用程序域的资源。基本上有两个修复,一个比另一个简单得多:
阅读如何创建和加载crossdomain xml。这只是您正在运行的闪存应用程序读取的服务器上的“策略”。正确设置可能很棘手,但这是普遍接受的路线。
在您的输出设置中,在“本地播放安全”下,您可以检查“访问网络文件”,而不是“仅访问本地文件” - 并快速解决您的问题。
希望有帮助!
【讨论】:
我尝试了您的两种解决方案,但都没有奏效。我写了一个跨域包含以上是关于无法使用 AS3 连接到 Java 服务器的主要内容,如果未能解决你的问题,请参考以下文章
Java 邮件无法使用 tls 或 ssl 连接到 smtp
为啥客户端无法连接到 Java Websocket 服务器?