Ranefi, de momento sólo he probado conectandome a mi misma computadora. Dejo aqui el codigo para que por favor le echen un vistazo si pueden, como me pedÃas:
Cliente (solo meto el codigo q tiene q ver con la accion de enviar archivos, claro, jeje)
Private Sub cmdDescargar_Click()
rutapcremoto = txtConsola.Text
nombrearchivo = List1
rutapclocal = txtRutaLocal.Text
Winsock2.SendData "DESCARGAARCHIVO|" & rutapcremoto & "|" & nombrearchivo & "|" & rutapclocal
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock2.GetData datos
If Mid(datos, 1, 1) = "<" Or Mid(datos, 1, 1) = "f" Or Mid(datos, 1, 14) = "PERMISOARCHIVO" Then
If Mid(datos, 1, 1) = "<" Then
datos = Mid(datos, 1, Len(datos) - 0)
List1.AddItem datos
datos = ""
End If
If Mid(datos, 1, 1) = "f" Then
datos = Mid(datos, 2, Len(datos) - 1)
List1.AddItem datos
datos = ""
End If
If Mid(datos, 1, 14) = "PERMISOARCHIVO" Then
datos = Mid(datos, 16, Len(datos) - 14)
rutapclocal = ""
For i = 1 To Len(datos)
If Mid(datos, 1, 1) <> "|" Then
rutapclocal = rutapclocal + Mid(datos, 1, 1)
ElseIf Mid(datos, 1, 1) = "|" Then
datos = Mid(datos, 2, Len(datos) - 1)
Exit For
End If
datos = Mid(datos, 2, Len(datos) - 1)
Next
tamaño_archivo = Val(datos)
Winsock2.SendData "ENVIAMEYA"
archivo_temporal = ""
End If
Else
Label2.Caption = rutapclocal & nombrearchivo
If Len(archivo_temporal) <> tamaño_archivo Then
Espera 10
archivo_temporal = archivo_temporal + datos
Espera 500
If Len(archivo_temporal) = tamaño_archivo Then
On Error Resume Next
Open rutapclocal & nombrearchivo For Binary As #1
Put #1, 1, archivo_temporal
Close #1
Espera 50
archivo_temporal = ""
MsgBox ("Archivo recibido correctamente"), vbInformation
End If
End If
rutapclocal = ""
nombrearchivo = ""
End If
Nota : espera es la funcion q vi por aki por este foro para hacer un sleep, lo incorpore para intentar mejorar el envio d archivos con un tiempo de espera... Lo del condicional del winsock2 es xq el winsock2 tambien lo uso para pasar la informacion para poder explorar desde el cliente el pc del servidor.
Servidor:
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Dim ruta As String
Winsock2.GetData datos
'Si es ARCHIVOS...
If Mid(datos, 1, 8) = "ARCHIVOS" Then ' Si los 8 primeros caracteres son ARCHIVOS
ruta = Mid(datos, 10)
listar ruta 'Llamamos a la función para listar los ficheros de esa unidad y carpeta
End If
'Si es DESCARGAARCHIVO...
If Mid(datos, 1, 15) = "DESCARGAARCHIVO" Then ' Si empieza por DESCARGAARCHIVO
rutaarchivo = ""
nombrearchivo = ""
rutapcremoto = ""
datos = Mid(datos, 17, Len(datos) - 15)
For i = 1 To Len(datos)
If Mid(datos, 1, 1) <> "|" Then
rutaarchivo = rutaarchivo + Mid(datos, 1, 1)
ElseIf Mid(datos, 1, 1) = "|" Then
datos = Mid(datos, 2, Len(datos) - 1)
Exit For
End If
datos = Mid(datos, 2, Len(datos) - 1)
Next
For i2 = 1 To Len(datos)
If Mid(datos, 1, 1) <> "|" Then
nombrearchivo = nombrearchivo + Mid(datos, 1, 1)
ElseIf Mid(datos, 1, 1) = "|" Then
datos = Mid(datos, 2, Len(datos) - 1)
Exit For
End If
datos = Mid(datos, 2, Len(datos) - 1)
Next
rutapcremoto = datos
Label1.Caption = rutaarchivo & nombrearchivo & rutapcremoto
' Ya tenemos almacenados la ruta del archivo a enviar, el nombre del archivo y la
' ruta del pc remoto al que se enviará el archivo
On Error GoTo sigue:
Open rutaarchivo & "\" & nombrearchivo For Binary As #1
contenido_archivo = Input(LOF(1), 1)
Close #1
tamaño_archivo = Len(contenido_archivo)
GoTo siempre:
sigue:
Open rutaarchivo & nombrearchivo For Binary As #1
contenido_archivo = Input(LOF(1), 1)
Close #1
tamaño_archivo = Len(contenido_archivo)
GoTo siempre:
siempre:
tamaño_archivo = Len(contenido_archivo)
Label5.Caption = Len(contenido_archivo)
Winsock2.SendData "PERMISOARCHIVO|" & rutapcremoto & "|" & tamaño_archivo
Label2.Caption = rutaarchivo & nombrearchivo
Label4.Caption = rutapcremoto
End If
'Si es ENVIAMEYA...
If datos = "ENVIAMEYA" Then
Winsock2.SendData contenido_archivo
End If
Nota: lo mismo digo... si es ARCHIVOS (lo del Mid(datos)... etc) es xq hago asi lo de pasar los datos al cliente para q este explore el pc del servidor.
Espero que entre todos podamos encontrar una solución, jeje, muchas gracias de nuevo por contestar, y muchÃsimas gracias de antemano, espero ideas
