Foros del Web » Creando para Internet » Flash y Actionscript »

socket as3

Estas en el tema de socket as3 en el foro de Flash y Actionscript en Foros del Web. Hola, hace varios dias estoy intentando establecer una conexion consocket Lo logre desde mi pc pero no puedo hacerlo desde la web. Me apoye en ...
  #1 (permalink)  
Antiguo 18/05/2008, 05:05
 
Fecha de Ingreso: agosto-2004
Mensajes: 11
Antigüedad: 19 años, 8 meses
Puntos: 0
socket as3

Hola, hace varios dias estoy intentando establecer una conexion consocket
Lo logre desde mi pc pero no puedo hacerlo desde la web.

Me apoye en algunos ejemplos, que si bien no funcionaban parecian ser buenos.
uno de ellos es el de lessrain.

Aqui va el codigo de la conexion (modificado por mi) dado que no funcionaba. Repito si funciona desde mi pc hacia afuera.
Puse en negrita lo que creo que es mas importante y que no esta funcionando...
Aqui va el ejemplo "corriendo"

http://www.hableweb.com/ftp/ftp.html

Mi crossdomain es:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain='www.durangosierramadre.com' to-ports='21' />
</cross-domain-policy>

Y luego la clase que hace la conexion es:

package {
import flash.errors.IOError;
import flash.events.DataEvent;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.Socket;
import flash.system.Security;
import flash.utils.ByteArray;
import Globales;

public class SocketConnection extends EventDispatcher{
public const ENABLE_TRACE:Boolean=true;

private var _socket:Socket;
private var _host:String;
private var _port:uint;
private var _policyPort:uint;
private var _path:String;

public static var _messageField:OutputField;

public function SocketConnection(host_:String="localhost",port_:ui nt=21, policyPort_:uint=80){


_host=host_;
_port=port_;
_policyPort=policyPort_;

}

public function initialize():void{
if(ENABLE_TRACE) trace("Tratando de conectar..."+_host);
Globales._messageField.addText("tratando de conectar:"+_host+"port:"+_port+" policyPort:"+_policyPort);



//Globales._messageField.reset();
_socket=new Socket();
try {
Globales._messageField.addText("estoy en try");
//Security.loadPolicyFile("xmlsocket://"+_host+":"+_policyPort);
Security.loadPolicyFile("http://"+_host+"/crossdomain.xml");

}
catch (e:IOError) {
Globales._messageField.addText("estoy en catch");
}finally{
Globales._messageField.addText("estoy en finally");
conectar();
}
}

public function conectar(){
Globales._messageField.addText("estoy en conectar");
try{
_socket.connect(_host,_port);
}catch(e:SecurityError){
Globales._messageField.addText("problemas de conexion");
}finally{
configureListeners();
}
}

public function sendRequest():void{
var request:String="";
request+="GET "+_path+" HTTP/1.1"+"\n";
request+="HOST: localhost"+"\n";
request+=""+"\n"
Globales._messageField.addText(request);
sendMultiByte(request);
}

private function configureListeners():void{
//Globales._messageField.reset();
Globales._messageField.addText("configurando listeners");
_socket.addEventListener(ProgressEvent.SOCKET_DATA ,progressDataHandler);
_socket.addEventListener(Event.CLOSE,closeHandler) ;
_socket.addEventListener(Event.CONNECT, connectHandler);
_socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_socket.addEventListener(SecurityErrorEvent.SECURI TY_ERROR, securityErrorHandler);
}

public function sendMultiByte(str_:String):void{
try{
Globales._messageField.addText("sendMultiByet");
_socket.writeMultiByte(str_, "iso-8859-1");
_socket.flush();

dispatchEvent( new SocketDataEvent( SocketDataEvent.DATA_OUTPUT, str_));

Globales._messageField.addText("Enviado"+str_);
if(ENABLE_TRACE)trace("Enviado:");
if(ENABLE_TRACE) trace(str_);

}catch(e:IOError){
//var str:String=e.text;
Globales._messageField.addText(str_+"error");

}
}

private function readMultiByte():String{
var str:String = _socket.readMultiByte( _socket.bytesAvailable, "iso-8859-1" );
if(ENABLE_TRACE) trace("Recibido:");
Globales._messageField.addText("Recibido:"+str);
return str;
}

private function progressDataHandler(event:ProgressEvent):void{
Globales._messageField.addText("progress");
dispatchEvent( new SocketDataEvent( SocketDataEvent.DATA_INPUT,readMultiByte()));
}
private function socketDataHandler(event:ProgressEvent):void{

}

private function closeHandler(event:Event){
if (ENABLE_TRACE) trace("Connection cerrada: "+event);

Globales._messageField.addText("close Handler");
sendRequest();
}

private function connectHandler(event:Event):void {
Globales._messageField.addText("Connection established");
if (ENABLE_TRACE) trace("Connection established: " + event);
sendRequest();
}

private function ioErrorHandler(event:IOErrorEvent):void{
Globales._messageField.addText("ioErrorHandler");
if(ENABLE_TRACE) trace("Conexion establecida " + event);
sendRequest();
}



private function securityErrorHandler(event:SecurityErrorEvent):voi d{
SecurityErrorEvent.SECURITY_ERROR
Globales._messageField.addText("error de seguridad desde el listener"+event.text);
Globales._messageField.addText(event.toString());
if(ENABLE_TRACE) trace("Connection SecurityError: " + event);
}

}
}
  #2 (permalink)  
Antiguo 10/07/2010, 14:45
 
Fecha de Ingreso: diciembre-2009
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: socket as3

el problemas es del protocolo fijate ;)
  #3 (permalink)  
Antiguo 10/07/2010, 14:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: socket as3

nah mentira , me meti de curioso , siempre que no entiendo por que no anda le mando la misma escusa, suerte.
  #4 (permalink)  
Antiguo 11/07/2010, 00:13
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: socket as3

Tres preguntas básicas:

1) ¿Estás corriendo el socketServer desde tu servidor?
2) ¿Estás corriendo desde localhost? (Presiento que una ves en el servidor, eso ya no se comporta así)
3) ¿Tienes permitido el puerto 21? Ese está reservado para SSH. Lo más probable es que esté desactivado para otros programas que no sean SSH, es mejor que uses un puerto del 1024 para arriba...
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.