Debe tenerse en cuenta también que read() y recv() retornan tan pronto como tienen algún resultado y no necesariamente aguardan el arribo de todos los datos que se esperan.