View Single Post
Old 12-02-2003, 20:33   #5
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Quote:
Originally posted by "cionci"

Non puoi stare a leggere una riga di testo (perchè per i file binari non va bene)... Ti conviene di più leggere un tot di byte ed inviarli... Fissato il numero di byte non ci dovrebbero essere problemi di pulizia del buffer o di altro (se non per l'ultima trasmissione)...
Potresti ad esempio fare ogni trasmissione composta da un intero seguito dagli altri tot byte fissati letti dal file...
Questo byte può contenere la dimensione dei dati letti dal file (che seguono quell'intero)...

Ad esempio se fissi in 4096 il numero massimo di byte che compongono un pacchetto...ne leggi sempre 4096...
Invii sull'interfaccia l'intero 4096 seguito dai 4096 byte letti...
L'ultima lettura può essere un numero minore di 4096...mettiamo sia 1234...
Invii sull'interfaccia 1234 seguito dai 1234 byte letti...

Se ad esempio il file risulta multiplo di 4096...allora devi anche inviare un pacchetto con l'intero a 0 seguito da nessun byte...

Questa soluzione ti può servire anche per inviare altri comandi (ad esempio il cambio o il contenuto di una directory, la disconnessione)...
Fissando a 4096 il numero massimo (4096 codificato in binario equivale al bit 13 a 1)...ti rimangono altri 18 bit per poter codificare il tuoi comandi (un intero sono 32 bit)...
Allora cionci , innanzitutto il file che invio non è un file binario ma un file di testo . Scusami se te lo chiedo , potresti farmi qualche esempio ?
leon84 è offline   Rispondi citando il messaggio o parte di esso