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 - Problemi Winsock e Trasferimento File
Forum - Visual Basic 6 - Problemi Winsock e Trasferimento File

Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 20:36
Venerd, 23/05/2008
Ciao a tutti!
Ho un problemino...e mi serve una mano...
Allora sto facendo un programma in cui devi trasferire dei file. Nel Client ho messo questo codice:

Codice sorgente - presumibilmente VB.NET

  1. Dim SentData As String
  2. Dim conteggio As Long
  3. If var = True Then
  4. Open Path(P) For Binary As #2
  5. MsgBox "Inizio"
  6. DoEvents
  7. SentData = Space(10000)
  8. For conteggio = 0 To CLng(LOF(2) / 10000)
  9. Get #2, conteggio * CLng(10000) + 1, SentData
  10. MsgBox SentData
  11. Winsock2.SendData SentData
  12. DoEvents
  13. Next conteggio
  14. var = False
  15. DoEvents
  16. Close #2
  17. Winsock2.SendData "Fine150A"
  18. End If


P.S: Questo un codice preso da una vecchia discussione.
Path(P) una variabile in cui c' il percorso del file.

Ecco il codice del server:

Codice sorgente - presumibilmente VB.NET

  1. '{Ricevimento file}
  2. Dim data As String
  3. If data = "Fine150A" Then
  4. Winsock2.Close
  5. Label1.Caption = "Trasferimento-->Completato!"
  6. Exit Sub
  7. Else
  8. Open App.Path & "\LISTA.TXT" For Binary As #3
  9. Winsock2.GetData data
  10. data = Replace(data, "Fine150A", "")
  11. [b]Winsock2.Close[/b]*
  12. Put #3, , data
  13. Close #3
  14. End If



*Adesso spiego il problema:
Il trasferimento sembra funzionare ma il file creato contiene solo spazi vuoti ed grande 8kb.
Mettendo la stringa winsock2.close invece nn so xk ma nel file LISTA.TXT c' il codice. Il probema che il file SEMPRE di 8Kb e quindi se i file superano gli 8Kb viene tagliato il codice. Come posso allargare la grandezza?
p.s. ho provato ad allargare lo Space() ma nn va...

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:17
Venerd, 23/05/2008
A parte il fatto che mi sembra che thread sul winsock ce ne siano a quintali in questo forum, sempre con gli stessi problemi, da cui potevi prendere spunto ...

In ogni caso, mi sembra scontato che il file ricevuto non sia mai piu' grande di 8 K ...

L'evento del winsock in cui si ricevono dati, non viene chiamato una sola volta ma TANTE volte quando viene ricevuto un nuovo blocco di dati (in genere 8 K, appunto ...). Quindi, il prossimo blocco andrebbe aggiunto al precedente fino a riformare tutto il file ... ma se apri e chiudi il file ad ogni blocco, naturalmente avrai solamente l'ultimo ...

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 9:46
Sabato, 24/05/2008
Testo quotato

Postato originariamente da gantonio:

A parte il fatto che mi sembra che thread sul winsock ce ne siano a quintali in questo forum, sempre con gli stessi problemi, da cui potevi prendere spunto ...
__________________________________________________
Ci ho provato ma nn ho trovato la soluzione al mio probl...:(
__________________________________________________
In ogni caso, mi sembra scontato che il file ricevuto non sia mai piu' grande di 8 K ...

L'evento del winsock in cui si ricevono dati, non viene chiamato una sola volta ma TANTE volte quando viene ricevuto un nuovo blocco di dati (in genere 8 K, appunto ...). Quindi, il prossimo blocco andrebbe aggiunto al precedente fino a riformare tutto il file ... ma se apri e chiudi il file ad ogni blocco, naturalmente avrai solamente l'ultimo ...



GRAZIE, Ho RISOLTO 6 proprio un GRANDE!
:asd::asd::asd:

PM Quote