Autor
|
Tema: Cliente Servidor,Transferencia Archivos corregir codigo (Leído 2,831 veces)
|
ELGRANSOLRAC
Desconectado
Mensajes: 91
|
Bueno Hola a todos: Tengo un codigo que me baje de un cliente/servidor para transferir archivos.El servidor manda al cliente un archivo y cuando lo manda al cliente en el servidor se visualiza un ProgressBar del transcurso de la transferencia. Yo lo que queria es si se puede visualizar el ProgressBar en el cliente. Gracias Servidor: Private Sub Command1_Click() Common.DialogTitle = "Buscar archivo..." Common.FileName = "" Common.Filter = "Todos los archivos|*.*" Common.ShowOpen If Common.FileName <> "" Then Label2.Caption = Common.FileName Open Label2.Caption For Binary As #1 TCP.SendData "EMA" & Common.FileTitle & "LAR" & LOF(1) 'envio nombre y largo de archivo Close #1 End If On Error GoTo ema Dim Buf As String * 1024 Dim Todo As String Open Label2.Caption For Binary As #1 Barra.Min = 0 Barra.Max = LOF(1) Do While Not EOF(1) DoEvents Get #1, , Buf Todo = Todo & Buf If Len(Todo) <= Barra.Max Then Barra.Value = Len(Todo) Loop Close TCP.SendData Todo Exit Sub ema: MsgBox Err.Description End Sub
Private Sub TCP_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long) Barra.Min = 0 Barra.Max = bytesSent + bytesRemaining Barra.Value = bytesSent End Sub
Cliente: Private Sub TCP_DataArrival(ByVal bytesTotal As Long) Dim Texto As String TCP.GetData Texto If Mid(Texto, 1, 3) = "EMA" Then cargo_Datos Texto Exit Sub End If If Mid(Texto, 1, 3) = "LAR" Then Frame1.Caption = "Archivo : " & Mid(Texto, 4, Len(Texto) - 3) & " bytes." Largo = CLng(Mid(Texto, 4, Len(Texto) - 3)) Exit Sub End If Archivo = Archivo & Texto If Len(Archivo) >= Largo Then Common.DialogTitle = "Guardar archivo..." Common.FileName = Label1.Caption Common.ShowSave Open Common.FileName For Binary As #1 Put #1, , Archivo Largo = 0 Archivo = "" Close #1 End If End Sub
Sub cargo_Datos(Txt As String) Dim i As Long Dim Nom As String Txt = Mid(Txt, 4, Len(Txt) - 3) For i = 1 To Len(Txt) If Mid(Txt, i, 3) = "LAR" Then Nom = Left(Txt, i - 1) Largo = CLng(Mid(Txt, i + 3, Len(Txt) - i)) Label1.Caption = Nom Frame1.Caption = "Archivo : " & Largo & " bytes..." End If Next i End Sub
|
|
|
En línea
|
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
Claro, el problema es el mismo en el cliente que en el servidor. Lá única diferencia es que el cliente no sabe cual es la meta a menos que tu le indiques el tamaño del archivo.
Primero envías ese tamaño y pones el progressbar.max a eso. Luego repites el código que usaste en el servidor.
Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
Dark_Knight
Desconectado
Mensajes: 97
|
Hola Tengo problemas al usar el codigo.. lo que sucede, es que el programa hace la copia, la transfiere y deja la copia en donde yo le digo.. pero cuando reviso el archivo.. esta incompleto.... y ademas cuando se termina la transferencia, se abre la ventana del commonddialog para decime donde lo quiero guardar pero el progressbar sigue avanzando... y cuando lo guardo antes de que el progress termine , me vuelve a aparecer una y otra vez.... hasta que se termina de llenar el progressbar....no se si el codigo esta mal.. ó cual que puedo hacer Espero me puedan ayudar... P.D Si alguien conoce un codigo para la transferencia de archivos... me podrian decir en donde lo encuentro Un saludo.. GRACIAS...
|
|
|
En línea
|
El hombre no puede crear nada sin antes dar algo a cambio... para crear... algo del mismo valor debe perderse.... esa es la ley de la equivalencia de intercambio... y el que desafie esa ley se convertira en un desafio de las creencias del ser humano y de la existencia de dios....
|
|
|
Dark_Knight
Desconectado
Mensajes: 97
|
Acabo de hacer la prueba de enviar un archivo.. y lo que pasa fue que al transferir un archivo de 766kb.. primero me mandó el archivo con 9kb y cuando hice la transferencia con el mismo archivo, me mandó el archivo con el resto que faltaba.. los 759kb.. alguien sabe como puedo corregir el codigo para que me envie el archivo completo y no envie un archivo con una cantidad y otro archivo con otra cantidad.. UN SALUDO... Espero su respuesto.. GRACIAS
|
|
|
En línea
|
El hombre no puede crear nada sin antes dar algo a cambio... para crear... algo del mismo valor debe perderse.... esa es la ley de la equivalencia de intercambio... y el que desafie esa ley se convertira en un desafio de las creencias del ser humano y de la existencia de dios....
|
|
|
Dark_Knight
Desconectado
Mensajes: 97
|
Hola Al principio iba a corregir lo que puse anteriormente... de que hacia la transferencia de un archivo de 766kb... y me enviaba un archivo de 9kb... y luego el resto.... aqui pense que me habia equivocado al colocar 759kb... ya que seria 757kb.. pero... ya lo hice de nuevo, y si hace la transferencia como lo coloque.. primero crea un archivo de 9kb.. y luego otro de 759kb... eso quiere decir que no envia el resto del archivo, sino que, se crea otro archivo y con otra cantidad.... por ejemplo primero se hace la transferencia de un archivo y se crea y al ejecutarlo, no se puede porque esta incompleto, y al verificar la cantidad es de 9kb.... y si se intenta enviar el mismo archivo.. se transfiere, se crea el archivo.. y al ejecutarlo, tampoco se puede porque esta incompleto y al verificar la cantidad, es de 759kb....y ahi necesito ayuda.. alguien sabe como puedo hacer que no suceda esto, y que me envie el archivo completo y bien.... Espero su respuesta.. un saludo... GRACIAS..
|
|
|
En línea
|
El hombre no puede crear nada sin antes dar algo a cambio... para crear... algo del mismo valor debe perderse.... esa es la ley de la equivalencia de intercambio... y el que desafie esa ley se convertira en un desafio de las creencias del ser humano y de la existencia de dios....
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
Hola. Porqueme sale el siguiente error: Se require un objeto citando a esta parte. Aque se refiere TCP? TCP.SendData "EMA" & Common.FileTitle & "LAR" & LOF(1) 'envio nombre y largo de archivo
|
|
|
En línea
|
|
|
|
xavierote
Desconectado
Mensajes: 134
|
Tienes que insertar un control Winsock, y luego llamarlo según el nombre. Si se llama Winsock1, pues sería Winsock1.SendData "datos".
Si no sabes como utilizarlo te recomiendo que te leas algún tutorial.
Saludos!!
|
|
|
En línea
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 230
|
Ok. Gracias.
Lo que pasa es que habia copiado el codigo para saber que como funciona y por ello me salio esos errores..
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda, corregir un codigo :S
.NET (C#, VB.NET, ASP)
|
Edu
|
4
|
3,488
|
20 Marzo 2011, 15:18 pm
por Edu
|
|
|
transferencia de archivos cliente/servidor (ambos sentidos) con "winsock"
.NET (C#, VB.NET, ASP)
|
spiritdead
|
6
|
6,871
|
2 Junio 2011, 21:53 pm
por spiritdead
|
|
|
¿Me ayudarían a corregir este código?
Programación C/C++
|
AnungUnRama
|
6
|
3,658
|
9 Mayo 2013, 16:30 pm
por leosansan
|
|
|
Ayuda por un error en una parte de código en un Cliente - Servidor
Programación Visual Basic
|
luis carlos0510
|
0
|
2,029
|
30 Octubre 2013, 04:48 am
por luis carlos0510
|
|
|
Corregir código de C++
Programación C/C++
|
Jose_00
|
1
|
2,274
|
8 Abril 2015, 03:17 am
por tremolero
|
|