Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Winsock Trasferire File
Forum - Visual Basic 6 - Winsock Trasferire File - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:14
Domenica, 09/03/2008
..forse perchè il file che stai mandando (quello aperto in filepath) contiene solo quelle due lettere?

PM
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 15:11
Domenica, 09/03/2008
Testo quotato

Postato originariamente da P4p3r0g4:io lavoro un string e non in byte.



E fai male ... le stringhe in VB sono tra gli elementi piu' "lenti" che ci siano ... molto meglio lavorare con un vettore di byte ...

In ogni caso, il tuo programma presenta degli inconvenienti (prendile come critiche costruttive ...) ...

1) Lavora con un buffer di dimensioni fisse (e' bene variare le dimensioni del buffer in relazione alla grandezza del file ...)

2) L'ultimo blocco letto dal file, non e' detto che sia di 4000 byte e quindi ne trasmetti sicuramente piu' di quelli che servono, con l'effetto che chi riceve ne ricevera' in piu' e i file non saranno uguali ...

PM
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 15:13
Domenica, 09/03/2008
Testo quotato

Postato originariamente da .:ViRuS:.:
Ciao Paperoga... Il codice che mi hai dato mi manda come dati solo "MZ"



Se ti ostini ad usare le textbox non ci capirai mai molto ...

I file eseguibili non sono dei file di testo.

Contengono dei caratteri ASCII non visibili e quindi non li vedrai mai in un textbox ...

PM
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 15:40
Domenica, 09/03/2008
Testo quotato

Postato originariamente da gantonio:
E fai male ... le stringhe in VB sono tra gli elementi piu' "lenti" che ci siano ... molto meglio lavorare con un vettore di byte ...

In ogni caso, il tuo programma presenta degli inconvenienti (prendile come critiche costruttive ...) ...

1) Lavora con un buffer di dimensioni fisse (e' bene variare le dimensioni del buffer in relazione alla grandezza del file ...)

2) L'ultimo blocco letto dal file, non e' detto che sia di 4000 byte e quindi ne trasmetti sicuramente piu' di quelli che servono, con l'effetto che chi riceve ne ricevera' in piu' e i file non saranno uguali ...



sicuramente vero.
ma sono abituato alle stringhe e finchè non ho bisogno di un invio massiccio di dati mi scoccierebbe mettere tutto in vettori sono meno leggibili e più complicati nel debug.
ho già lavorato in byte si intende ma sono rimasto fedele alle stringe per pigrizia...

per le critiche costruttive.
1) vero. il codice che ho postato è vecchio. ma era il più semplice da analizzare per virus.
per le versioni più complesse come la versione 4 dell'esr utilizzo un procedimento che calcola il massimo di caratteri inviabili (che rimane costante anche se può variare tra connessioni),in modo da massimizzare l'invio del socket e da evitare l'invio di pacchetti di lunghezza piccola.
2) anche qui è vero. non l'avevo neanche notato tnx.

Ps: dici che è meglio l'invio della lunghezza del file  alla partenza oppure l'invio "con risposta" per evitare perdite di dati?
Io sto sviluppando i miei sorgenti verso la risposta ma ho paura che l'invio possa diventare troppo lento..


PPS: errore madornale nel mio codice. va messo string a chr(0) e non space.

@virus:
per controllare l'invio di dati invece di usare le textbox usa uno sniffer di rete. ti consiglio wireshark che a me in Xp ha sempre funzionato.
Edit: oppure converti gli asc() in esadecimale ma comunque non saprai nulla sui pacchetti persi e non potrai lavorare su file grandi.

Ultima modifica effettuata da P4p3r0g4 il 09/03/2008 alle 15:47
PM
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 15:50
Domenica, 09/03/2008
Per quanto riguarda i byte o le stringhe ... beh, prima che puoi, lascia stare le stringhe e vinci la pigrizia ... un vettore di byte e' semplicissimo da usarsi (anche per il debug ...) ed e' molto molto piu' veloce delle stringhe ...

Per la scelta del metodo ... ti consiglio di costruire un "dialogo" in cui ci sia all'inizio l'invio della lunghezza del file, e durante l'invio, un controllo delle porzioni di file inviati tramite una risposta di conferma ...

Per quanto riguarda spazi o chr(0), non fa differenza ...

PM
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 22:42
Domenica, 09/03/2008
beh lo spazio scritto in un file prchè eccede i 4000 caratteri è diverso da un chr(0) che eccede..

PM
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:44
Domenica, 09/03/2008
Non ho capito ...

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:51
Mercoledì, 12/03/2008
Ciao a tutti scusate ancora se disturbo...

@Paperoga: Ho scaricato EsR nei sorgenti... e ho abbastanza capito il codice del trasferimento.. ma quando lo applico io non va... crea il file... ma non
lo crea come dovrebbe... infatti copiando un file dat   dove all'interno c'era scritto "ciao"

nel file creato non usciva niente... e invece di essere un KB (dimensione file originale) era di 0 kb..

Ecco il codice:



Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim SentData As String
  3. miao = False
  4.  
  5. Open "C:\sisa.dat" For Binary As #6
  6.  
  7. Open "C:\ListaServer.dat" For Binary As #1
  8. DoEvents
  9. SentData = Space(4000)
  10. For Conteggio = 0 To CLng(LOF(1) / 4000)
  11. Get #1, Conteggio * CLng(4000) + 1, SentData
  12. DoEvents
  13. Next Conteggio
  14. miao = True
  15. DoEvents
  16. Close #1
  17.  
  18. If miao = True Then
  19. Close #6
  20. Else
  21. Put #6, , SentData
  22. End If
  23. End Sub



Dov'è Che sbaglio??? :d:d:d:d


Potete darmi una mano voi?


Grazie 1000!!!


EDIT:

CE L'HO FATTAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

finalmente ce l'ho fatta!!!! Grazie mille a tutti!!!!!!!!!


VERAMENTE GRAZIE!!!!

Madonna sono euforico...:love::love::love:

GRazie a tutti veramente... Sia per l'aiuto... Che per avere risposto!! Grazie veramente grazie!!!


P.S= Dove dice space (4000) e tutti gli altri 4000

cosa sarebbe? Ho notato che se cambio il numero cambiano le dimensioni del file...


GRAZIE 1000 ANCORA A TUTTI!!!!
:k::D:k::D:k:

Ultima modifica effettuata da il 12/03/2008 alle 16:04
PM
Pagine: [ 1 2 3 4 ] Precedente | Prossimo