elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Enivo de Archivos por Winsock!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Enivo de Archivos por Winsock!  (Leído 3,880 veces)
vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Enivo de Archivos por Winsock!
« 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


« Última modificación: 9 Abril 2007, 01:50 am por vivachapas » En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Enivo de Archivos por Winsock!
« Respuesta #1 en: 9 Abril 2007, 00:44 am »

Yo ya puse un code con progress bar, puedes cojerlo de ahí ;)


En línea

vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Enivo de Archivos por Winsock!
« Respuesta #2 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
« Última modificación: 9 Abril 2007, 01:51 am por vivachapas » En línea

hepy_92

Desconectado Desconectado

Mensajes: 130



Ver Perfil
Re: Enivo de Archivos por Winsock!
« Respuesta #3 en: 30 Mayo 2007, 03:17 am »

excelente! muy bien explicado
moderadores! deberian fijarlo  ::)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines