Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/04/2011, 04:51
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: inconvenientes al leer tramas de bytes por tcp

Hola:

A bajo nivel todo se maneja solo, los paquetes IP tienen sus longitudes y sus cosas y te garantizan la fiabilidad completa. Pero a nivel de tu aplicación java todo eso es transparente para tí. A ti te garantizan que si desde el otro lado envían 10 bytes, a tí te llegan 10 bytes bien, independientemente que por debajo se haya enviado un paquete IP o dos, y las longitudes que tengan y checsums y demás.

Eres tú, a alto nivel, el que tiene que poner o saber cómo separar los mensajes.

Si los fin de línea son realmente fin de línea, puedes leerlo como lo haces. Cada lectura te dará hasta un fin de linea, pero el resto de los caracteres no se tiran (salvo que los tires tú inadvertidamente) y lo que tienes que hacer es ir leyendo repetidamente
Código java:
Ver original
  1. buffer=new BufferedReader(new InputStreamReader(socket.getInputStream() )
  2. String linea = buffer.readLine();
  3. while (linea != null) {
  4.    // trata linea
  5.    linea = buffer.readLine();
  6. }

Lo que no puedes hacer (no sé si lo haces, pero me da esa impresión por el nombre de la variable) es crear el BufferedReader cada vez que quieras leer una trama.

Se bueno.
__________________
Apuntes Java
Wiki de Programación