problema con enviar archivo y progressbar

Iniciado por vivachapas, 2 Agosto 2008, 06:31 AM

0 Miembros y 1 Visitante están viendo este tema.

vivachapas

bueno hacia mucho q no usaba estas funciones... y como un #€#?@ no guarde un proyecto donde lo tenia...
el caso es q estaba tratando de hacer de nuevo un programa para enviar archivos con progressbar en el cliente y en el servidor...
el programa solo tiene eso, lo acabo de hacer para recordar.. y me di cuenta q no lo recuerdo muy bien xD..

Servidor:
Dim Archivo As String, Peso As Long
Dim Partes As String

Private Sub Command1_Click()
Dim Puerto As Long
Puerto = Text1.Text
WS.Close
WS.LocalPort = Puerto
WS.Listen
End Sub

Private Sub Command3_Click()
Open Text2.Text For Binary As #1
Archivo = Input(LOF(1), 1)
Close #1
Peso = Len(Archivo)
WS.SendData "Envio|" & Peso
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 Datos As String
Dim i As Long

WS.GetData Datos

If Datos = "Manda" Then
MsgBox "manda"
PB.Max = Peso
PB.Min = 1
For i = 1 To Peso
    Partes = Mid(Archivo, i, 100)
    WS.SendData Partes
    PB.Value = i
    i = i + 99
Next
PB.Value = 1
End If
End Sub


Cliente:
Dim Recibiendo As Boolean, Peso As Long, vPeso As Long
Dim Archivo As String

Private Sub Command1_Click()
Dim IP As String
Dim Puerto As Long
IP = Text1.Text
Puerto = Text2.Text
WS.Close
WS.Connect IP, Puerto
End Sub

Private Sub WS_Connect()
MsgBox "Conecto"
End Sub

Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim Datos As String
Dim vDatos() As String

WS.GetData Datos

If Recibiendo = True Then
    vPeso = vPeso + bytesTotal
    Archivo = Archivo + Datos
    PB.Value = vPeso
    If Peso = vPeso Then
    MsgBox "recibe todo"
    PB.Value = 1
        Open "C:\foto.jpg" For Binary As #1
        Put #1, 1, Archivo
        Close #1
        Archivo = ""
        Recibiendo = False
    End If
    Exit Sub
End If

vDatos = Split(Datos, "|")

If vDatos(0) = "Envio" Then
    Recibiendo = True
    Archivo = ""
    vPeso = 0
    Peso = vDatos(1)
    PB.Max = Peso
    PB.Min = 1
    WS.SendData "Manda"
End If
End Sub


al archivo lo envia correctamente, y este llega bien, se guarda y todo... el problema es q primero se va cargando el progressbar del programa q lo envia, cuando este termina comienza a cargar el q lo recibe, y este cada vez lo hace mas lento...
:/ no entiendo xq es... es de noche tengo sueño y tal vez sea eso... pero x favor si alguno me da una mano se lo agradezco...


P/D: EON se q me vas a retar... pero busuqe tu ejemplo y no lo encuentroooo solo encontre la funcion MID para partir el archivo pero no para el progressbar


SALUDOS

SKL (orignal)

sera porque el Max del progressbar siempre esta sumando en ves de volver a 0 por cada transferencia???

naderST

#2
No veo ningun problema  :xD

~~


vivachapas

mmmm EON el link ese es de tu filemager  :-\... ese solo tiene progressbar en el cliente :P, yo creo q habias posteado un source de un programa como este q estoy tratando de hacer... a lo mejor no y por eso no lo encuentro  :xD

bueno, y sino... xq sera q no funca xD (sera xq lo pruebo a los dos en la misma computadora?) ahora voy a probar mandarselo a un amigo...
pero es raro xq primero me va cargando el progressbar del envio, y desp como q cuando esto termina de cargarse, manda al archivo y empieza a cargar el otro cuando llega... (tb es raro q comienze rapido y se vaya haciendo mas lento)...

bueno si detectan el error en el codigo avisenme... yo ya lo cambie miles de veces, probando siempre con cambios minimos... pero el resultado es siempre igual :S