siempre se va a leer (mientras se pueda) como máximo sizeof(buf), o la cantidad de bytes leidos puede ir variando, y recibir a veces menos y luego recibir el maximo permitido....?
No se si se entiende bien :P
A mi lo que me pasa es que cuando veo la cantidad de bytes leidos devueltos por el recv me aparecen:
4
4
4
..
3
y cuando vuelve a entra al loop queda como colgado en el recv, queda como esperando....
gracias