Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/04/2015, 12:45
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Enviar comandos a la impresora via socket

Hola:

Lo del retorno de carro es según uses out.print() o out.println(). La segunda forma lo añade automáticamente, así que no sería necesario que lo añadieras tú en el comando.

Si se te queda en el readLine(), o bien no está enviando nada la impresora, o está enviando algo que no termina en retorno de carro. Para verificar cual de las dos opciones es, vete leyendo byte a byte, cambia el while readLine por

Código Java:
Ver original
  1. int caracterLeido;
  2. while ((caracterLeido = in.read()) != -1) {
  3.     System.out.println(caracterLeido);
  4. }

Si va escribiendo código ascii, es que la impresora está devolviendo algo. Si no es que la impresora no envía nada. Si devuelve un CR al final, deberías ver el 13 en la salida.

De todas formas, el código que tienes actualmente

Código Java:
Ver original
  1. while ((response= in.readLine()) != null) {    
  2.        System.out.println(response);
  3. }

se quedará bloqueado en algún momento, ya que cuando la impresora deje de enviar respuestas y si ella no cierra el socket (no creo que lo haga), readLine se quedará bloqueado. Entiendo que cuando dices que se te queda bloqueado, es que ni siquiera ha enviado la primera respuesta (no sale el System.out.println(response).

Se bueno.
__________________
Apuntes Java
Wiki de Programación