insisto XD estás mandando 1byte en un paquete que pesa más de 64 solo con las estructuras de control ip y tpc XD es como si crearas un transporte de una tonelada para llevar a una persona de 60 kg! (con todo el sarcasmo del mundo)
usualmente lo que se hace es que mandas primero el tamaño del paquete y lees hasta alcanzar ese tamamaño, usas un timeout de 3 segundos y si el tamaño no fue alcanzado y se dispara el timeout, hubo error en el envio, usualmente tambien envías una estructura para indicar el fin del paquete