Hola,
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:
DataOutputStream message = new DataOutputStream(sock.getOutputStream());
String text = "lunes\nmartes\nmiercoles\jueves\nviernes\nsabado\ndomingo\nfin_transmision\n";
message.writeBytes(text);
En el servidor tengo esto otro:
Código:
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;
}
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.
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.