Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/11/2010, 13:20
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Capturar datos en hexadecimal del socket

Ni el cliente ni el servidor reciben o envian "cadenas en hexadecimal", siempre se envían y se reciben bytes (bits, si me apuras). Otra cosa es a alto nivel como se interpreten esos datos.

Y leer datos binarios con Reader es un error, ya que este tipo de objetos está preparado para leer cadenas y tener en cuenta las diferencias de formato en las que se representan las cadenas en distintas plataformas, así que puede transformarlo. Y usar readLine, por ejemplo, puede devolvernos el mensaje entero en una cadena, puesto que en un fichero binario puede no aparecer nunca el caracter que represente un final de linea.

En fin, que para leer byte a byte, lo suyo es utilizar InputStream y derivados, casi siempre encapsulados por BufferedInputStream por rendimiento. Luego esos bytes los transformas en lo que quieras. Por ejemplo para pasar un array de bytes a valores hexadecimal, puedes usar cualquiera de las variantes propuestas en este post:

http://stackoverflow.com/questions/3...ile-keeping-le

Hay para escoger .

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.