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