Oppure

Loading
16/04/07 13:20
xreme
ciao a tutti,
arrivo subito al punto, ho due applicazioni una fà da server è l' altra fà da client, le due appliczioni dialogono correttamente, però nasce un problema nel momento in cui desidero inviare un file, praticamente non riesco a capire dove sbaglio, posto il codice parziale delle due applicazioni, nella speranza che qualcuno riesca a darmi un aiutino:

allora con questa funzione invio

Dim invio() As Byte
Dim data As String


Private Sub Command2_Click()
CDl.ShowOpen
If CDl.FileName = "" Then Exit Sub
'comunico nome del file e lunghezza
Ws.SendData "info|" & CDl.FileTitle & "|" & FileLen(CDl.FileName)
End Sub

Private Sub Command3_Click()
'invio il file
Open CDl.FileName For Binary As 1
ReDim invio(0 To LOF(1) - 1)
Get #1, , invio
Close #1
Ws.SendData invio
End Sub


e con questa funzione dovrei riceverlo:


Dim data As String
Dim invio() As Byte
Dim mystring


Private Sub Timer2_Timer()
'controllo la lunghezza del file salvato se è = alla lungezza comunicata lo chiudo
If FileLen(App.Path & "\" & mystring(1)) = Val(mystring(2)) Then Close #1
End Sub

Private Sub Ws_DataArrival(ByVal bytesTotal As Long)

Ws.GetData data
If Mid(data, 1, 4) = "info" Then
mystring = Split(data, "|", -1, 1)
Text3 = Replace(data, (mystring(0) & "|" & mystring(1) & "|" & mystring(2)), "")

Open App.Path & "\" & mystring(1) For Binary Access Write As #1

Else

Ws.GetData invio
Put #1, , invio
'attivo il timer per verificare la lunghezza del file
Timer2.Enabled = True
End If

End Sub

cosa c' è di sbagliato in tutto questo?
aaa
16/04/07 13:33
c.ronaldo
Precisamente che errore ti dà:-?
aaa
16/04/07 13:38
xreme
no, non è questione di errore ma il file non viene trasferito!
aaa
16/04/07 13:58
P4p3r0g4
casi possibili
a) il tuo file è troppo grande.(non sempre riesci a contenere il file con 1 solo invio)
b)i tuoi socket non sono connessi correttamente.
Ultima modifica effettuata da P4p3r0g4 16/04/07 14:00
aaa
16/04/07 14:08
xreme
ciao,
no come file ho provato da qualche byte fino a un megabyte: escluso
i socket si connettono correttamente, uno ascolta è l' altro si connette.

Private Sub Timer1_Timer()
Label6.Caption = StatoWinsock1(Ws.State)
End Sub
Private Function StatoWinsock1(ValoreNumerico As Integer) As String
Select Case ValoreNumerico
  Case Is = 0
    StatoWinsock1 = "Chiuso"
    Ws.Close
    Ws.Listen
  Case Is = 1
    StatoWinsock1 = "Aperto"
  Case Is = 2
    StatoWinsock1 = "In attesa"
  Case Is = 3
    StatoWinsock1 = "Connessione in sospeso"
  Case Is = 4
    StatoWinsock1 = "Risoluzione dell'host in corso"
  Case Is = 5
    StatoWinsock1 = "Host risolto"
  Case Is = 6
    StatoWinsock1 = "Connessione in corso..."
  Case Is = 7
    StatoWinsock1 = "Connesso..."

  Case Is = 8
    StatoWinsock1 = "Il Computer ha chiuso la connessione"
    Ws.Close
    Ws.Listen
  Case Is = 9
    StatoWinsock1 = "Errore:Il Computer non è raggiungibile"
    Ws.Close
    Ws.Listen
End Select
End Function
aaa
16/04/07 14:15
P4p3r0g4
guarda se riceve correttamente i dati principali
aaa
16/04/07 14:20
xreme
quali sono i dati pricipali?
ti riferisci a nome del file è lunghezza?
si li ricevo
aaa
16/04/07 14:43
P4p3r0g4
i command li clicchi tu o sono cliccati da codice in maniera consecutiva?
Ultima modifica effettuata da P4p3r0g4 16/04/07 14:46
aaa