El cliente envia al server el tamaño del archivo, el server lo recibe y manda la orden de que se envie el contenido del archivo a la vez q activa el interruptor (variable booleana) para indicar q todos los datos recibidos a partir de ese momento iran a un string q cuando tenga el mismo tamaño que el del archivo deseado se descargara totalmente en el archivo.
Aki un ejemplo:
Server:
Código:
Private Sub Form_Load()
ws.Close
ws.Connect "127.0.0.1", 2848
End Sub
Private Sub ws_Connect()
ws.SendData "Tam:" & FileLen("C:\Prueba.txt")
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim Send As String
ws.GetData data
If Left(data, 8) = "SendFile" Then
Open "C:\Prueba.txt" For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1
ws.SendData Send
End If
End Sub
Cliente:
Código:
Dim DataFile As String
Dim LenFile As Long
Dim Envio As Boolean
Private Sub Form_Load()
ws.LocalPort = 2848
ws.Listen
Envio = False
End Sub
Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
ws.GetData data
If Envio = True Then
DataFile = DataFile & data
ProgressBar1.Value = Len(DataFile)
If Len(DataFile) = LenFile Then
Open "C:\Prueba2.txt" For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False
ProgressBar1.Value = 0
End If
End If
If Left(data, 4) = "Tam:" Then
LenFile = Mid(data, 5)
ProgressBar1.Max = LenFile
Envio = True
ws.SendData "SendFile"
End If
1S4ludo