E' una bella risposta secondo me.
Penso purtroppo che il rinvio dei pacchetti in caso di errore non avvenga in automatico, e ciò causa un problema nella ricezione....e dato che cambiano le $volte che bisogna leggere...che consigli?
Però allo stesso tempo, se ottiene un errore nel trasferimento, socket_write dovrebbe dirmelo.
L'unico errore che mi ha dato socket_write è stato proprio quando il file ricevente ha bloccato la lettura secondo le $volte e ha chiuso tutto pensando che i byte fossero finiti, mentre magari socket_write doveva inviare altra roba(cm pensi tu). (Mi riferisco in particolare al file da 17MB)
Infatti mi diceva Connessione chiusa dall'host remoto o una cosa del genere.
Ti parlo all'incirca della fine del file ma di un numero di byte persi più alto di 4096, e ciò mi fa pensare che l'errore non avvenga nell'ultima lettura, cioè quella che riguarda la differenza mancante.
Un saluto
Alberto
EDIT:
Nella documentazione PHP ho trovato:
Il Transmission Control Protocol è un procotollo affidabile, basato sulla connessione, orientato al flusso, full duplex. Il TCP garantisce che tutti i pacchetti siano ricevuti nel medesimo ordine in cui siano stati inviati. Se un pacchetto viene perso durante la trasmissione, il TCP provvederà automaticamente alla ritrasmissione fino a quando l'host remoto non conferma la ricezione dello stesso. Per ragioni di affidabilità e di prestazioni, è il TCP stesso a decidere l'appropriata dimensione dei pacchetti del sottostante livello di datagrammi. Pertanto le applicazioni TCP devono permettere la parziale ritrasmissione di un record.
Dunque in automatico sembra accollarsi il tutto...però dalla parte del server che riceve, devo gestirlo cmq io questo fatto?

.
Rispondi quotando