0
我试图与我的服务器通信我的Flash应用程序。无论是问题是我的代码正在使用Flash Professional,但是我已经准备好了使用Flex 4 -SDK的Flash Builder上的所有接口。我的代码不适用于Flex项目。flex4套接字问题
问题不在于安全文件。我无法解决问题。可能的原因是什么?
亲切的问候。
如果需要,我的代码在[在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("------------------");
}
您的解决方案也无法正常工作:(我的SWF文件使用Flex构建,但无法接收或发送任何内容。使用Flash Pro Cs5构建swf文件时,它可以工作...代码和策略文件是相同的...我已经使用套接字策略文件,情况是一样的:( – softwaremonster 2010-06-29 11:56:11
跟踪的输出是什么?你有一个专门的服务,监听端口1755并返回套接字策略? – 2010-06-29 15:12:27
在flash pro cs5上跟踪都没问题,我可以发送和接收数据包,但是在Flex上,我无法做到这一点...我在C#上写了一个[Tcp Server]服务器,我无法理解代码的工作原理Cs5但不是在Flex :( – softwaremonster 2010-06-29 16:58:27