PROBLEMA CON SOCKET Y ENVIO POR BYTES
muchachos no veo el error:
en el server tengo algo mas o menos asi:
el problema es que me llega byte a byte osea si desde un cliente mando hackchan en server llega asi:
h
ha
hac
hack
hackc
hackch
hackcha
hackchan
hackchan_
hackchan_?
los dos ultimos bytes son el CRC 16, como hago para que simplemente me llegue
hackchcan_?
que pena si incomodo mas de uno pero estoy aprendiendo gracias
- hackchan's blog
- Inicie sesión o regístrese para enviar comentarios
entrada y salida
para empezar, tus variables
y
apuntan al stream de entrada del socket. Supongo que te equivocaste y la variable
debería apuntar realmente al stream de salida...
El problema es que estás convirtiendo cada byte a char cuando lo recibes, sin saber si después lo vas a necesitar como byte. Deberías estar guardando los bytes como bytes, para que cuando hayas recibido el mensaje completo, tomes los dos últimos bytes como el CRC16 y el resto lo puedas convertir a texto (aunque para calcular el CRC vas a necesitar tener los bytes de todas maneras).
El problema es que no conoces la longitud de lo que te va a llegar; si lo primero que te enviaran fuera la longitud entonces sabrías de antemano cuántos bytes vas a tener que leer para alojar un arreglo de ese tamaño.