Visual Basic - Envio de archivos por partes [Winsock]

Life is soft - evento anual de software empresarial
   
Vista:

Envio de archivos por partes [Winsock]

Publicado por illuminat3d (1 intervención) el 21/03/2016 18:59:04
Hola chicos, lo primero muchas gracias por leer, lo segundo vengo con un problema estoy haciendo una herramienta de administracion remota y estoy haciendo las funciones de descarga de archivo y subida de archivo.. el problema viene cuando los archivos son grandes y winsock no envia todos el contenido de una lo que hice fue hacer un loop y al abrir el archivo con un bucle dentro pues compruebo que no esta en el final del archivo y voy enviando con winsock, que problema tengo pues que los datos a veces llegan mezclados o se salta los delimitadores aqui dejo el codigo..

Estoy buscando que alguien me haga una funcion o modulo para enviar archivos por partes.

Codigo de cliente : :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub WS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  WS(Index).GetData Datos
 
  tDatos = ""
 
  If String(Len(Datos), Chr(0)) <> "" Then tDatos = tDatos & Datos
 
  If InStr(1, tDatos, "/S/") Then
    Data = Split(tDatos, "|")
 
    Select Case Data(1)
      Case "Conexion":      Call vConexion(Index): frmNotify.Label1.Caption = Data(2)
      Case "Informacion":   Call vInformation
      Case "dwnFile":       Call dwnFile
      Case "CapturarPantalla": Call Capturar_Pantalla
    End Select
 
    tDatos = ""
  End If
End Sub
 
Public Function dwnFile()
On Error Resume Next
  Dim fData()       As String
  Dim f_Name        As String
  Dim f_Len         As Long
  Dim uName         As String
  Dim uIP           As String
 
  FF = FreeFile
  fData = Split(Replace$(tDatos, "/S/|dwnFile|", ""), "|$--$|")
  Archivo = Archivo + fData(0)
  f_Name = fData(1)
  f_Len = fData(2)
  frmEspecifico = fData(3)
 
  uIP = Split(frmEspecifico, "/")(1)
  uName = Replace(Split(frmEspecifico, " Administrando a ")(1), "/" & uIP, "")
 
  Create_Folders (uName)
  If Len(Archivo) >= f_Len Then
        Open App.Path & "\Usuarios\" & uName & "\Descargas\" & fData(1) For Binary As FF
                   Put FF, , Archivo
        Close FF
 
        Archivo = ""
  End If
End Function

CODIGO SERVIDOR :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Function dwFile()
  Dim aBuff       As String * 8024
  Dim f_Name      As String
  Dim Largo       As Long
 
  frmEspecifico = Data(3)
  f_Name = Split(Data(2), "\")(UBound(Split(Data(2), "\")))
  FF = FreeFile
 
  Open Data(2) For Binary As FF
        Do While Not EOF(FF)
            DoEvents
            Get FF, , aBuff
            Largo = LOF(FF)
 
            eDatos = "/S/|dwnFile|" & aBuff & "|$--$|" & f_Name & "|$--$|" & Largo & "|$--$|" & frmEspecifico & "|$--$|"
            Call sDatos(eDatos)
        Loop
  Close FF
End Function

Alguien que me haga un ejemplo?, muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder