Oppure

Loading
28/07/08 9:34
.:ViRuS:.
è 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:

Private Const chunk = 8192

If data = "OK" Then
data = ""
 Open Dialog1.FileName For Binary As #1
DoEvents

Do While Not EOF(1)
data = Input(chunk, #1)
TCP.SendData "/BinaryDataomfglol" & data
Pause 400
DoEvents
Loop


DoEvents

TCP.SendData "EndTransfer"
Close #1

End If


Ed ecco invece il codice che riceve:

  S = data
V = Split(S, "omfglol")

TCP.GetData data

DoEvents

If V(0) = "/BinaryData" Then
Put #9, , V(1)
End If

If data = "EndTransfer" Then
Close #9
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:. 28/07/08 10:34
aaa
28/07/08 9:53
gantonio
Il problema e' in ricezione (quel codice e' assurdo).

Ma anche in trasmissione non ha senso scrivere

TCP.SendData "/BinaryDataomfglol" & data

Insomma ... tutto da rifare ...

aaa
28/07/08 9:55
.:ViRuS:.
Gantonio è la 5 volta che riscrivo un codice per fare questo... se mi dici dove devo andare a riparare/sorvrascrivere codice potrei vedere...


io non so dov'è l'errore
aaa
28/07/08 10:26
gantonio
Una volta ti dissi come fare ...

Nel client: invia PRIMA del file una stringa UNIVOCA indicante il fatto che stai trasmettendo il file e quanti byte stai trasmettendo ... e subito dopo il file senza altre stringhe.

Nel server: stai in attesa della stringa UNIVOCA per aprire il file e ottieni il numero di byte da ricevere ... mentre li ricevi li conti e poi chiudi il file.

aaa
28/07/08 10:34
.:ViRuS:.
io per dire che devo inviare il file mando la stringa: /receivefile,pippo.exe

cosi l'altra parte crea il file col nome pippo.exe e lo apre in binario inviando poi un messaggio di OK (tcp.senddata "OK";)

dopo di che inizia a inviare i dati... e ho fatto in modo da inviare 8192 bytes alla volta con la costante chunk
inviando: /binarydata,dati

ho messo omfglol perchè se ci sono altre virgole poi mi da solo una parte e quindi sono voluto andare sul sicuro...

ho usato lo split perchè ci sono tanti comandi e non potevo riconoscerlo senza split almeno che non uso un'altra socket... e poi dovrei aprire un'altra porta...@_@
questa volta ho tolto il messaggio che conferma di aver scritto i dati perchè come avevamo detto in tcp non si perdono dati....

e quindi ho fatto così... solo che ora o non arrivano i dati o qualche altra cosa succede. e poi non crea bene il file...

cioè io non so come fare mo...


scusa tu come faresti....
Ultima modifica effettuata da .:ViRuS:. 28/07/08 10:36
aaa
28/07/08 11:00
gantonio
Postato originariamente da .:ViRuS:.:

io per dire che devo inviare il file mando la stringa: /receivefile,pippo.exe

cosi l'altra parte crea il file col nome pippo.exe e lo apre in binario inviando poi un messaggio di OK (tcp.senddata "OK";)


Non ho visto tutto questo nel tuo codice client ...

In ogni caso, invia anche la lunghezza, ad esempio

stringa: /receivefile,pippo.exe,123298/

Cosi' hai solo bisogno di inviare

/binarydata,dati

e i dati senza altro ...

ho usato lo split perchè ci sono tanti comandi


Comandi ? Che programma e' ? Non dovevi solamente trasmettere un file ?

scusa tu come faresti....


Come ti ho detto ...
aaa
28/07/08 11:09
.:ViRuS:.
Postato originariamente da gantonio:

In ogni caso, invia anche la lunghezza, ad esempio

stringa: /receivefile,pippo.exe,123298/

Cosi' hai solo bisogno di inviare

/binarydata,dati

e i dati senza altro ...


Scusa non ho capito cosa dovrei fare O_o

Comandi ? Che programma e' ? Non dovevi solamente trasmettere un file ?


beh il programma che voglio fare è una chat simile a msn con assistenza remota invio file e tant'altro.... quindi mi serve di tutto....
aaa
28/07/08 11:18
gantonio
Postato originariamente da .:ViRuS:.:
Scusa non ho capito cosa dovrei fare O_o


Non saprei come dirtelo meglio ... cosa non hai capito?

beh il programma che voglio fare è una chat simile a msn con assistenza remota invio file e tant'altro.... quindi mi serve di tutto....


Mandamelo zippato e do' un'occhiata meglio alla parte di trasferimento file ...
aaa