Salve a tutti, spero di aver imbroccato la sezione giusta
, vorrei esporvi un problema chi mi ha bloccato riguardo al trasferimento file client-server tramite socket.
Finchè i file che ho provato a trasferire erano limitati (per esempio file di testo da pochi kB, ma anche canzoni da qualche bel MB) non ho avuto problemi e ho usato tranquillamente buffer ( byte[] ).
Ora volevo provare a trasferire file più consistenti come film o addirittura immagini dvd da diversi GB. A questo punto è impensabile usare ancora buffer, la soluzione ottimale dovrebbe essere lo streaming credo.
L'idea è che se da una parte invoco il SendFile per inviare un file immenso dall'altra devo metterci un NetworkStream legato ad un FileStream e leggendo a blocchi scrivere man mano sul file. Il fatto è che il file viene passato tutto ma riscritto "male", penso sia un problema di codifica ma non riesco a risolverlo
Dunque, questo è un pezzo del codice (scritto in C#) per darvi l'idea:
Ho provato diverse alternative, con lo StreamWriter per esempio, oppure ho provato anche a inviare per blocchi escludendo SendFile... Il risultato però è sempre quello, i file ne escono corrotti
...
Qualche idea per risolvere? In ogni caso se avete alternative migliori proponetemele pure