curiosità... del file, quando arriva, cosa ne fai? lo salvi? sei sicuro di usare una modalità binaria nel gestirlo? sicuro di non gestire i dati che ti arrivano dalla rete con funzioni che operano sulle stringhe (gets e derivate)? tali funzioni identificano lo zero come terminatore di stringa e un file non di testo sicuramente al suo interno contiene tale valore.
Potrebbe essere quello che succede a te. Ti viene salvata solo la prima parte del file... fino al primo zero incontrato.