Oppure

Loading
23/05/08 18:36
GrG
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:

Dim SentData As String
Dim conteggio As Long
If var = True Then
Open Path(P) For Binary As #2
MsgBox "Inizio"
DoEvents
SentData = Space(10000)
For conteggio = 0 To CLng(LOF(2) / 10000)
Get #2, conteggio * CLng(10000) + 1, SentData
MsgBox SentData
Winsock2.SendData SentData
DoEvents
Next conteggio
var = False
DoEvents
Close #2
Winsock2.SendData "Fine150A"
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:

'{Ricevimento file}
Dim data As String
If data = "Fine150A" Then
Winsock2.Close
Label1.Caption = "Trasferimento-->Completato!"
Exit Sub
Else
Open App.Path & "\LISTA.TXT" For Binary As #3
Winsock2.GetData data
data = Replace(data, "Fine150A", "")
[b]Winsock2.Close[/b]*
Put #3, , data
Close #3
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...
aaa
23/05/08 20:17
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 ...

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 ...
aaa
24/05/08 7:46
GrG
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:
aaa