26/02/08 14:38
punkettone90
ciao, ho scaricato la chat fatta da vinc94 e ci ho inserito la possibilità di inviare file, il programma funziona senza bug, solo che durante l'invio consuma tantissima CPU, scrivo il sorgente
credo che il problema sia nel lunghissimo ciclo for che il programma deve fare per leggere byte pr byte il file e metterlo nel flusso della rete.
ho visto che c'è volendo nel framework il metodo write (byte,int,int) solo che ho dei vari problemi ad usarlo quando voglio leggere un bloco di byte non nell'inizio del file, ma ad esempio a metà file.
chi mi può aiutare?
grazie!
try { clientdifile.Connect(textBoxHost.Text, 1919); streamdifile = clientdifile.GetStream(); clientconferma.Connect(textBoxHost.Text, 1920); streamconferma = clientconferma.GetStream(); writerconferma = new StreamWriter(streamconferma); readerconferma = new StreamReader(streamconferma); FileStream flusso = new FileStream(aprifinestrainvio.FileName, FileMode.Open); byte dati; UInt64 cont = 0; string istruzioni; int k; int blocchi = 0; UInt64 resto = Convert.ToUInt64(flusso.Length) % 100000; UInt64 cicli = ((Convert.ToUInt64(flusso.Length) - resto)) / 100000; writerconferma.WriteLine(flusso.Length); writerconferma.Flush(); for (cont=0; cont < cicli+1; cont++) { if (cont != cicli - 1) { blocchi = 100000; } else { blocchi = Convert.ToInt32(resto); } istruzioni = readerconferma.ReadLine(); if (istruzioni == "okvai") { for (k = 0; k < blocchi; k++) { // dati = Convert.ToByte(flusso.ReadByte()); streamdifile.WriteByte(Convert.ToByte(flusso.ReadByte())); } } } streamdifile.Flush(); streamdifile.Close(); flusso.Flush(); flusso.Close(); } catch { MessageBox.Show("eccezzione nell'invio del file"); MessageBox.Show(Convert.ToString(e)); } }
credo che il problema sia nel lunghissimo ciclo for che il programma deve fare per leggere byte pr byte il file e metterlo nel flusso della rete.
ho visto che c'è volendo nel framework il metodo write (byte,int,int) solo che ho dei vari problemi ad usarlo quando voglio leggere un bloco di byte non nell'inizio del file, ma ad esempio a metà file.
chi mi può aiutare?
grazie!
Ultima modifica effettuata da Il Totem 26/02/08 15:12
aaa