Ho fatto un'altra prova, ho sniffato i pacchetti ed ho visto che anche nel caso in cui il client "sembra" non ricevere tutti i pacchetti, i pacchetti sono stati inviati. Quindi potrebbe essere che si riempie il buffer di ricezione del client....
ho provato con file più piccoli di 8kB(che è la dimensione del buffer associata al mio socket, l'ho visto con socket.getReceiveBufferSize() ) ed il problema non si presenta mai. Però mi sembra alquanto strano