Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/04/2015, 12:59
dragonfire256
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Enviar comandos a la impresora via socket

Cita:
Iniciado por chuidiang Ver Mensaje
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.
Hola Chui

Tal cual como dices, el programa se queda bloqueado; la ultima sugerencia que me indicaste, la probe, y tuve que cancelar el programa despues de dos minutos y no leyo ningun byte. Adicionalmente, la guia de programacion no es muy util, ya que no indica que informacion debe recibir o que tipo de datos envias; solamente indica los diferentes comandos y su utilidad