Comunidad de diseño web y desarrollo en internet online

Problema con XMLSocket

Citar            
MensajeEscrito el 13 Feb 2006 06:43 pm
Hola a todos. Estoy empezando con XMLSocket en Flash y con los sockets en Java, y ya me ha surgido el primero problema.

Tengo el siguiente ejemplo en Flash:

Código :

var mnjConectar:Object = new Object();
var mnjEnviar:Object = new Object();
var sock:XMLSocket = new XMLSocket();
var cadena:String = new String("Servidor = ");

sock.onConnect = function (exito:Boolean)
{
   if(exito)
      trace("conectado !!");
   else
      trace("NO CONECTADO !!");
}

mnjConectar.click = function ()
{
   _root.sock.connect("localhost", 3001);
}

mnjEnviar.click = function ()
{

     trace("Enviando...");
     _root.sock.send("hola colega");
   
   
}


sock.onXML = function (src)
{
   trace(src.toString());
}


sock.onClose = function ()
{
   trace("Conexión Cerrada");
   _root.sock.close;
}

btnConectar.addEventListener("click", mnjConectar);
btnEnviar.addEventListener("click", mnjEnviar);


El servidor lo tengo creado en Java. Os pongo el código:

Código :

/*
 * Main.java
 *
 * Created on 11 de febrero de 2006, 18:47
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

import java.io.*;
import java.net.*;
//import org.jdom.*;
//import org.jdom.output.XMLOutputter;
//import org.jdom.input.SAXBuilder; 


/**
 *
 * @author Jose
 */
public class servidor {
    
    
    public static void main(String[] args) 
    {
        
        try
        {
            // Muestro la IP del servidor
            System.out.println("Localhost = " + InetAddress.getLocalHost().toString());
            
        } catch (UnknownHostException e  )
        {
            
            System.out.println("Error al obtener IP");
        }
        
        // Creo un socket servidor en el puerto 3000
        ServerSocket ss = null;
        
        try
        {
            ss = new ServerSocket(3001);
            
        } catch (IOException e)
        {
            System.out.println("Error al crear el servidor");
            System.exit( -1 );
        }
        
        String datoEntrada = "";
        String datoSalida;
        
        while (true)
        {
            try
            {
                Socket cliente = ss.accept();
                
                // Extraemos los Streams de entrada y de salida 
                DataInputStream entrada = new DataInputStream(cliente.getInputStream()); 
                DataOutputStream salida = new DataOutputStream(cliente.getOutputStream());
 
                System.out.println("Cliente conectado");
                
                for(int i = entrada.read(); i != 0; i = entrada.read())
                {
                    datoEntrada += (char)i;
                    //System.out.println("Recibido = " + datoEntrada);
                }
                
                System.out.println("Recibido valor = " + datoEntrada);
                
                
                datoSalida = "Hola desde el servidor !!";
                
          

                salida.writeChars(datoSalida);
                
                entrada.close();
                salida.close();
                
                try
                {
                    cliente.close();
                    System.out.println("Cliente Cerrado");
                } catch (SocketException e2)
                {
                    System.out.println("Cliente No Cerrado");
                }
                
                
                try
                {
                    ss.close();
                    System.out.println("Servidor Cerrado");
                    System.exit(0);
                    
                } catch (IOException e1)
                {
                    System.out.println("Error al cerrar el servidor");
                    System.exit( -1);
                }                
                
            } catch (Exception e)
            {
                System.out.println(e.toString());
                System.out.println("Otro Error");
 
            }
        }
    
    }
    
}



La cosa es que el programita en Flash conecta con el servidor, le envía los datos al servidor, pero a la hora de recibir los datos, me sale esto:

Código :

Servidor = 
Servidor = H
Servidor = Ho
Servidor = Hol
Servidor = Hola
Servidor = Hola 
Servidor = Hola d
Servidor = Hola de
Servidor = Hola des
Servidor = Hola desd
Servidor = Hola desde
Servidor = Hola desde 
Servidor = Hola desde e
Servidor = Hola desde el
Servidor = Hola desde el 
Servidor = Hola desde el s
Servidor = Hola desde el se
Servidor = Hola desde el ser
Servidor = Hola desde el serv
Servidor = Hola desde el servi
Servidor = Hola desde el servid
Servidor = Hola desde el servido
Servidor = Hola desde el servidor
Servidor = Hola desde el servidor 
Servidor = Hola desde el servidor !


Me gustaría que enviase la cadena de una vez, en vez de caracter a caracter. ¿Es eso posible? En casi afirmativo, ¿qué cosa o cosas tendría que cambiar para que funcionase?

Gracias por adelantado.

Por i02hajij

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Abr 2012 07:06 pm
Febrero de 2006 xD,
no habra sido este problema?
for(int i = entrada.read(); i != 0; i = entrada.read())
{
datoEntrada += (char)i;
//System.out.println("Recibido = " + datoEntrada);//aqui?
}

System.out.println("Recibido valor = " + datoEntrada);

Por RZ

Claber

118 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 11 Abr 2012 09:15 pm
No ... igual el problema era responderlo 6 años después :)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Abr 2012 11:34 pm
Espero haya tenido maquina del tiempo, y en fin cual fue el problema?

Por RZ

Claber

118 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.