En este grupo En todos

Foro de Java



programar socket en java (utilizo eclipse y ubuntu)

Escrito por Jessica
el 06/02/2007

Hola 

Mi pregunta trata sobre socket.

He creado un programa en el que me conecto a un aparato y le mando un comando para que lo ejecute.

El aparato ejecuta un comando y se que envia una respuesta para que sepas que se ha ejecutado sino te manda un error.

Este es el codigo:

    public OutputStream outStream ; 
    public InputStream inStream ;
    public String destination = "192.168.0. 250"; 
    public Integer port =23; 
    public Socket connection;

Try{ connection = new Socket(destination,port);}
           catch (UnknownHostException ex) {System.out.println("Unkown Host");}
            catch (IOException er) {System.out.println("IO error");}

 try{
            outStream = connection. GetOutputStream();
            DataOutputStream bufferout = new          DataOutputStream(outStream);
            inStream = connection. GetInputStream();
            DataInputStream bufferin = new DataInputStream(inStream);
            bufferout. WriteBytes("W2RS|2! );
            System.out.println(bufferin. ReadByte()); // para ver la informacion Switcher
            Como = bufferin. ReadByte(); //lo mismo de otra forma
            System.out.println("como :" +Como);
        }
      catch (IOException ex) {System.out.println("IO errorea");}    
    }



Mi problema es que el writeByte me funciona correctamente puesto que el comando se ejecuta. Pero kiero ver cual es la respuesta del dispositivo y no la veo.

¿Que estoy haciendo mal?

Esta claro que con los socket se utilizan InputStream y OutputStream para entrada y salida y despues read() y write(). ¿No es asi? ¿En que me equivoco?

Gracias

Chuidiang Chuidiang
Madrid, España
Escrito por Chuidiang Chuidiang
el 07/02/2007

Hola:

No veo nada raro. Se me ocurren dos posibles causas

- El aparato no interpreta bien el comando y no responde nada.

- El byte devuelto por el aparato no es un caracter visible, así que lo estás leyendo, pero al hacer el System. Out no se ve. Intenta convertirlo a entero y escribir el valor del entero recibido.

Se bueno.

Escrito por Jessica
el 07/02/2007

Problema resuelto

He cambiado 

InStream = connection. GetInputStream();
            DataInputStream bufferin = new DataInputStream(inStream);
 System.out.println(bufferin. ReadByte())

Por: 

 BufferedReader in = new BufferedReader(new InputStreamReader(connection. GetInputStream()));
            Como = in. ReadLine();


Muchas gracias de todos modos