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 - Maledettissimo trasferimento File
Forum - Visual Basic 6 - Maledettissimo trasferimento File

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
.:ViRuS:. (Ex-Member)
Pro


Messaggi: 174
Iscritto: 01/06/2008

Segnala al moderatore
Postato alle 9:17
Sabato, 26/07/2008
Ciao a tutti ragazzi ho un ENNESIMO stramaledettissimo problema col winsock U_U non ce la faccio più!!!!!


Praticamente ho usato un codice che invia 8000 bytes a botta, e il file da inviare è un img di 1,47 mb

Il trasferimento c'è... scrive i dati però invece di arrivare a 1.47 mb non si ferma mai!!! cioè è come se  non ricevesse
Private Const chunk = 8192

Dim data

Open dlg1.filename For Binary As #1
Do While Not EOF(1)
data = Input(chunk, #1)
tcp.SenData data
pause 400
DoEvents
Loop

tcp.senddata "EndTransfer"
close #1


-.-" continua ancora... siamo a 13 mb di grandezza!!


Forse ho sbagliato io qualcosa nel codice che invia? perchè quello che riceve ha solo il compito di scrivere i dati..

PerFavore mi aiutate?

GRazie 1000!!!

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 10:28
Sabato, 26/07/2008
La stringa "EndTransfer" arriva al server?

Ultima modifica effettuata da GrG il 26/07/2008 alle 10:28
PM Quote
Avatar
.:ViRuS:. (Ex-Member)
Pro


Messaggi: 174
Iscritto: 01/06/2008

Segnala al moderatore
Postato alle 20:54
Sabato, 26/07/2008
Si ad arrivare arriva... ma la esegue mooolto dopo... credo che sia nell'invio l'errore...

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:58
Sabato, 26/07/2008
Il problema e' nel codice che riceve ...

PM Quote
Avatar
.:ViRuS:. (Ex-Member)
Pro


Messaggi: 174
Iscritto: 01/06/2008

Segnala al moderatore
Postato alle 9:13
Domenica, 27/07/2008
Ecco allora il codice che riceve.. non credo ci siano errori...


Codice sorgente - presumibilmente VB.NET

  1. S = data
  2. V = Split(S, ",")
  3.  
  4. If V(0) = "/ReceiveFile" Then
  5.  
  6.   Open App.Path & "\" & V(1) For Binary As #9
  7.   TCP.SendData "OK"
  8.   End If
  9.  
  10.   S = data
  11. V = Split(S, "omfglol")
  12.  
  13. Do Until V(0) = "/BinaryData"
  14. TCP.GetData data
  15. DoEvents
  16. Loop
  17.  
  18.  
  19. If V(0) = "/BinaryData" Then
  20. Put #9, , V(1)
  21. End If
  22.  
  23. If data = "EndTransfer" Then
  24. Close #9
  25. End If





GRazie dell'aiuto!!!

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 9:29
Domenica, 27/07/2008
Testo quotato

Postato originariamente da .:ViRuS:.:
Ecco allora il codice che riceve.. non credo ci siano errori...



Ma questo codice NON corrisponde a quello del client. Quindi, o hai modificato questo, o hai modificato quello del client.

Come si puo' leggere, il server si aspetta una stringa

/ReceiveFile

per iniziare la ricezione del file (e il tuo client non la manda) e si aspetta la stringa

/BinaryData

per indicare un blocco di dati binari e anche questa il tuo client non la invia ...

In piu', questo server, suddivide i dati in ingresso in base alla stringa

omfglol

ma questo non riesco a comprendere perche' lo faccia ... probabilmente anche questo codice e' stato modificato in maniera non corretta ...

Per riepilogare, il codice del server non e' completamente corretto e comunque si aspetta delle informazioni che il codice del client non gli fornisce affatto perche' e' stato modificato.


PM Quote
Avatar
.:ViRuS:. (Ex-Member)
Pro


Messaggi: 174
Iscritto: 01/06/2008

Segnala al moderatore
Postato alle 21:07
Domenica, 27/07/2008
Sisi la /receiveFile la riceve... ma non è in questa parte di codice...


ho aggiustato il codice mettendo tcp.senddata "/BinaryDataomfglol" & data

lo splitt avviene perchè ci sono molte funzioni tra client e server.. e devo usare solo una socket...


provo con questi cambiamenti.. sperando che funzioni ...

Nel Caso posto qui... Grazie mille dell'aiuto!!!

Testo quotato


Ma questo codice NON corrisponde a quello del client.



sisi corrisponde al client... cosa avrebbe di strano?

Ultima modifica effettuata da .:ViRuS:. il 27/07/2008 alle 21:09
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:03
Domenica, 27/07/2008
Testo quotato

Postato originariamente da .:ViRuS:.:
sisi corrisponde al client... cosa avrebbe di strano?



No ... cosa dici?

Il codice del client che hai mostrato nel primo post NON corrisponde al codice del server ... Il server si aspetta tutte le stringhe che ti ho detto, di cui non c'e' traccia nel client ...


PM Quote
Avatar
.:ViRuS:. (Ex-Member)
Pro


Messaggi: 174
Iscritto: 01/06/2008

Segnala al moderatore
Postato alle 11:34
Lunedì, 28/07/2008
è un discorso un po' complicato...

ma il SECONDO codice che ti ho postato fa parte del client e non del server...


ora però ho un altro problema.... qui credo sia proprio colpa della ricezione e non dell' invio

ecco il codice d'invio:

Codice sorgente - presumibilmente VB.NET

  1. Private Const chunk = 8192
  2.  
  3. If data = "OK" Then
  4. data = ""
  5.  Open Dialog1.FileName For Binary As #1
  6. DoEvents
  7.  
  8. Do While Not EOF(1)
  9. data = Input(chunk, #1)
  10. TCP.SendData "/BinaryDataomfglol" & data
  11. Pause 400
  12. DoEvents
  13. Loop
  14.  
  15.  
  16. DoEvents
  17.  
  18. TCP.SendData "EndTransfer"
  19. Close #1
  20.  
  21. End If



Ed ecco invece il codice che riceve:

Codice sorgente - presumibilmente Delphi

  1. S = data
  2. V = Split(S, "omfglol")
  3.  
  4. TCP.GetData data
  5.  
  6. DoEvents
  7.  
  8. If V(0) = "/BinaryData" Then
  9. Put #9, , V(1)
  10. End If
  11.  
  12. If data = "EndTransfer" Then
  13. Close #9
  14. End If





ecco il problema... quando il trasferimento finisce (Arriva endtransfer) e chiude il file, vado per aprire l'img (il fle è un img) e non esce completa ma solo una parte... ho cosi provato a far aprire un file senza winsock... e a scriverci dentro i dati prima di inviarli il risultato? il file c'è  ed è stato copiato... MA PERCHè COL WINSOCK NO!!!!!!!!!!!!!!!!!!!!!!!!!!!!


PER FAVORE RAGA LO VOGLIO RISOLVERE STO PROBLEMA... VEDIAMO DI RISOLVERLO INSIEME PERFAVORE...


GRazie mille di tutto!!!!!!!!!!

Ultima modifica effettuata da .:ViRuS:. il 28/07/2008 alle 12:34
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo