Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex flex4套接字问题_Apache Flex_Sockets - Fatal编程技术网

Apache flex flex4套接字问题

Apache flex flex4套接字问题,apache-flex,sockets,Apache Flex,Sockets,我正在尝试将我的flash应用程序与服务器通信。问题是我的代码在FlashProfessional上运行,但我已经在使用Flex4-SDK的FlashBuilder上准备好了所有接口。我的代码在Flex项目上不起作用 问题不在于安全文件。我解决不了这个问题。可能的原因是什么 亲切的问候 如有必要,我的代码如下[使用FlashPro,但不使用Flex!] import flash.net.*; import flash.events.Event;var host:String = new Stri

我正在尝试将我的flash应用程序与服务器通信。问题是我的代码在FlashProfessional上运行,但我已经在使用Flex4-SDK的FlashBuilder上准备好了所有接口。我的代码在Flex项目上不起作用

问题不在于安全文件。我解决不了这个问题。可能的原因是什么

亲切的问候

如有必要,我的代码如下[使用FlashPro,但不使用Flex!]

import flash.net.*;
import flash.events.Event;var host:String = new String("127.0.0.1");
var port:int = 8080;
var securityFile:String = "http://localhost:1755/.../..../s....xml";
var bagli:Boolean = false;

var socket:Socket = null;

var veri:String = new String("----");

btnGonder.addEventListener(MouseEvent.MOUSE_DOWN, tiklantiEvent);

function buildSocket():void
{           
trace("beginning....");
    socket = new Socket();
    socket.addEventListener(Event.CONNECT, onConnect);
    socket.addEventListener(Event.CLOSE, onClose);
    socket.addEventListener(ErrorEvent.ERROR, onError);
    socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    socket.addEventListener(ProgressEvent.SOCKET_DATA, onResponse);


Security.allowDomain(host);

Security.loadPolicyFile(securityFile);


try {
    socket.connect(host, port);
    bagli = true;
    trace("--- connection...");

} catch (error:Error) {

    trace("--- connection failed...");
    socket.close();
}
}


 function send(string:String):void {
    socket.writeUTFBytes(string);
    socket.flush();
}
 function onConnect(event:Event):void {
    trace("connect");
}
 function onClose(event:Event):void {
    trace("closed");
}
 function onError(event:IOErrorEvent):void {
    trace("connection erron");
}
 function onIOError(event:IOErrorEvent):void {
    trace("data error");
}
 function onResponse(event:ProgressEvent):void {
    var string:String = socket.readUTFBytes(socket.bytesAvailable);
    trace(string);
}


function (sender:Event):void {
    trace("clicked button....");
    buildSocket();
    trace("------------------");

}

您正试图使用内容类型策略文件授权套接字连接。您应该改用套接字策略文件。策略文件语法与我记忆中的相同,但url应该以xmlsocket://而不是http://开头。此文件不应通过http提供

此外,主机的域和策略文件地址中的域应该完全相同。假设您的主机被指定为127.0.0.1,请将策略文件url更改为

xmlsocket://127.0.0.1:1755


有关更多详细信息,请参阅。

您的解决方案也不起作用:(我使用Flex构建的swf文件建立了连接,但无法接收或发送任何内容。在使用Flash Pro Cs5构建的swf文件上,它可以工作…代码和策略文件相同…我使用了套接字策略文件,情况相同:(跟踪的输出是什么?您有专门的服务监听端口1755并返回套接字策略吗?在flash pro cs5上,跟踪是正常的。我可以发送和接收数据包。但在Flex上我做不到……我在C#a服务器[Tcp服务器]上给我写信。我不明白代码在cs5上工作,但在Flex上不行:(