24/02/11 16:28
xjokerx
Salve a tutti, ho realizzato diversi programmi per la trasmissione dei file tramite winsock; il risultato è buono, con una connessione adsl, impiega circa 5-6 secondi per un file di 200k;
ora mi chiedevo: come posso velocizzare la trasmissione dei pacchetti? So che esistono delle api di windows proprio per questo problema, ma non so come usarle, vi prego di aiutarmi.
Grazie in anticipo.
aaa
28/02/11 20:00
00bullo00
Che codice usi per la trasmissione? Perchè io ho creato un programma per il trasferimento di un file tramite Winsock, magari ti posso aiutare anche se non saprei come usare le API di Windows per aumentare la velocità di trasferimento ^^
Ultima modifica effettuata da 00bullo00 28/02/11 20:02
aaa
01/03/11 9:12
xjokerx
Il codice è buono, ne sono sicuro; volevo solo sapere se qualcuno sa come usare le api di windows per i socket
aaa
01/03/11 15:43
00bullo00
Purtroppo per le API di Windows non posso aiutarti, posso solamente dirti che il Winsock, con il metodo SendData, accumula tutto in un "buffer" per poi inviarlo appena termina la procedura evento in cui è stato usato il metodo stesso. Ad esempio se si legge per intero il file da trasferire in una procedura evento (come il click di un pulsante) in realtà il Winsock inizierà a trasmettere solo quando quest'ultima è terminata. Se si usa invece un timer che, ad esempio, ogni tot secondi, legge un byte o tot byte, la trasmissione avverrà "contemporaneamente" all'accumulo.
Ebbene tutto questo era per dirti che nel primo modo (che credo sicuramente userai data la velocità che sei riuscito a raggiungere), è decisamente più veloce del secondo, anche se credo che la trasmissione non sia annullabile perchè una volta che ha accumulato dati nel buffer come lo fermi, se non disconnettendo?
Mi spiace ma purtroppo quello che so è questo, non so se ti può essere utile. Sulle API di Windows non ho nessuna conoscenza :S.
aaa
01/03/11 19:41
xjokerx
Ti ringrazio molto per il tuo impegno, ho capito come usare l'api di windows per i socket in base a quanto mi dici (ho capito dove richiamarla...xD); l'invio è più veloce anche se di poco...Grz ancora!
aaa
06/03/11 21:51
00bullo00
Benissimo, ti ringrazio. Una cosa, basta dichiararla per ottenere gli effetti o bisogna usare qualche comando? (immagino la seconda visto che hai parlato di certe istruzioni che non sapevi dove applicare prima della mia spiegazione)
aaa