Título: Enivo de Archivos por Winsock! Publicado por: vivachapas en 8 Abril 2007, 23:42 pm bueno... voy a postear un codigo que hice con una muy buena explicacion creo de como hacer para enviar archivos a travez del control winsock...
bueno antes q nada aclaro q hay un poco de todos los codigos q hay en este foro... ya que de aqui aprendi a hacer esto :P CLIENTE es el que recibe los datos en este caso... colocar: winsock1 progressbar1 Código: 'arriba de todo si no no funciona! no se xq... Dim Enviar As Boolean 'variable Enviar q puede ser True o False Dim FileSize As Long 'variable q tendra el tamaño total del archivo Dim File As String 'variable q tendra al archivo Dim Ruta As String 'variable q tendra el destino donde se guardara el archivo Citar Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 'cuando llegan datos Dim Datos As String 'variable en la que se introduciran todos los datos q lleguen del servidor Dim vDatos() As String 'variable en la cual se pondran los Datos separados por "|" 'lleva () para hacer un arraid Winsock1.GetData Datos 'obtenemos los datos If Enviar = True Then 'pregunta si Enviar = true File = File + Datos 'le agregamos a la variable file los datos nuevos ProgressBar1.Max = FileSize ProgressBar1.Min = 1 ProgressBar1.Value = Len(File) If Len(File) = FileSize Then 'si File es igual al tamaño total del archivo... Open Ruta For Binary As #1 'abre la ruta donde se guardara el archivo Put #1, 1, File 'mete los datos Close #1 'cierra el archivo MsgBox "Archivo completado", vbInformation 'muestra un msg q termino Enviar = False 'cancela la funcion Enviar File = "" 'vacia la variable File End If 'Fin de Si End If 'Fin del Si de mas arriba If Left(Datos, 4) = "Info" Then 'pregunta si las primeras 4 letras de la variable Datos es igual a Info... vDatos = Split(Datos, "|") 'si es asi separa los Datos en donde alla un | Ruta = vDatos(1) 'la variable ruta es igual a la segundo bloque de las separaciones por el | 'ejemplo si el texto era "jaja|jeje" lo q se guardaria en esta variable es "jeje" FileSize = vDatos(2) 'hace lo mismo q antes pero con el tercer bloque Enviar = True 'pone a la variable Enviar en verdadero para q la proxima vez q lleguen datos se ejecute la primer funcion Winsock1.SendData "OK" 'envia OK al servidor End If 'Fin de Si End Sub 'Termina con la funcion Servidor Winsock1 CommonDialog1 Command1 Text1 Text2 Citar 'arriba de todo si no no funciona... no se xq!!! Dim Ruta As String 'variable donde se guardara la ruta del archivo Dim FileSize As Long 'variable donde se guardara el tamaño del archivo Dim File As String 'variable donde se guardara el archivo Private Sub Command1_Click() 'cuando se le hace click al boton CommonDialog1.ShowOpen 'abre el CommonDialog Text1.Text = CommonDialog1.FileName 'una vez q eliges el archivo muestra su ruta en el text1 Open Text1.Text For Binary As #1 'abre esa ruta File = Input(LOF(1), 1) 'la guarda en la variable File Close #1 'cierra el archivo FileSize = Len(File) 'en FileSize guarda el tamaño total del archivo Ruta = Text2.Text 'Ruta es igual al text2.text... aqui es donde se guardara el archivo en el cliente Winsock1.SendData "Info|" & Ruta & "|" & FileSize 'envia la palabra Info mas un separador | mas la ruta donde se guardara el archivo, otro | y el tamaño del archivo End Sub 'fin de la funcion Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 'cuando lleguen datos al winsock Dim Datos As String 'variable donde se guardaran los datos q llegan Winsock1.GetData Datos 'obtenemos los datos If Datos = "OK" Then 'si los datos son igual a OK Winsock1.SendData File 'q envie el archivo End If 'Fin de Si End Sub 'fin de la funcion bueno la verdad no lo probe... lo hice muy rapido pero creo q esta bien hecho y explicado... si hay algo mal avisenme q lo modifico despues voy a agregarle un progressbar.... pero como nunca hice uno... no se lo puse.. calculo q es secillo y si alguno me tira una idea mejor ;) SALUDOS:: modificado... + ProgressBar en el CLIENTE Título: Re: Enivo de Archivos por Winsock! Publicado por: ~~ en 9 Abril 2007, 00:44 am Yo ya puse un code con progress bar, puedes cojerlo de ahí ;)
Título: Re: Enivo de Archivos por Winsock! Publicado por: vivachapas en 9 Abril 2007, 01:05 am habia visto uno en el foro de kizar... pero no anda el foro...
ahora me fijo por aca :P Título: Re: Enivo de Archivos por Winsock! Publicado por: hepy_92 en 30 Mayo 2007, 03:17 am excelente! muy bien explicado
moderadores! deberian fijarlo ::) |