Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2013, 01:37
letni
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta [BufferedReader y readLine()] Utilización correcta

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.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Última edición por letni; 17/04/2013 a las 01:43