Tengo dos pequeños programas que utilizan la arquitectura cliente-servidor y se comunican a través de sockets.
En el cliente tengo esto:
Código:
En el servidor tengo esto otro:DataOutputStream message = new DataOutputStream(sock.getOutputStream()); String text = "lunes\nmartes\nmiercoles\jueves\nviernes\nsabado\ndomingo\nfin_transmision\n"; message.writeBytes(text);
Código:
Como podéis ver, en el bucle que va leyendo las líneas recibidas en el servidor tengo que utilizar una condición de salida del bucle donde se comprueba si la línea leída coincide con un texto utilizado para indicar que el mensaje ha acabado. String line = null; BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); while((line = reader.readLine()) != null) { if (0 == line.compareTo("fin_transmision")) break; }
Lo hago así porque en caso contrario el readLine() hace que el servidor se quede colgado.
¿Cómo puedo hacer para que funcione bien? ¿Es esta la manera de usarlo correctamente?
Un saludo.