• Sábado 20 de Abril de 2024, 06:45

Autor Tema:  Transferencia De Ficheros Con Winsock  (Leído 1682 veces)

crispi

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Transferencia De Ficheros Con Winsock
« en: Jueves 16 de Diciembre de 2004, 01:17 »
0
Buenas amigos, por lo que veran soy nuevo en este foro. Bueno, les paso a contar mi problema.

Hace unos dias comencé a hacer un chat en Visual Basic mediante Winsock. El chat funciona de maravillas y todo iba bien hasta que se me dio por incluirle una transferencia de ficheros. Pues bien , les explico como realizo la transferencia:

1° - El emisor envia el nombre y el tamaño del fichero al receptor
2° - El receptor captura esos datos, crea el fichero con el nombre que se le pasó y envia una señal al emisor para que le comienze a enviar los datos.
3° - El emisor al recibir la señal, entra en un bucle While que va leyendo el archivo en partes de 1024 y las va enviando
4° - El receptor , cada parte que recibe la va escribiendo
5° - El emisor, cuando envía la última parte, le agrega al final de todo unos caracteres (":::") para que el receptor reconozca que es la ultima parte y cierre el fichero.

Bueno todo este quilombo, lo hice y lo probe en mi máquina (abri el servidor y el cliente y puse la ip de mi maquina) y los archivos se transfieren perfectamente, pero cuando intento transferir un archivo entre dos maquinas distintas no funciona. ¿¿¿Por que no funciona?? Lo máximo que se transfiere entre una maquina y otra son 4KB. No más

Les cito los codigos que realizan las tareas antes mencionadas:

ENVIO DE NOMBRE Y TAMAÑO POR PARTE DEL EMISOR

   'Nombre del fichero...
   NombreF = CD.FileTitle
   'Tamaño del fichero...
   TamañoF = FileLen(txtFichero.Text)
   'Enviamos ambos datos con sus respectivas cabeceras
   WinsockFicheros.SendData "***" & NombreF & "///" & TamañoF

CREACION DEL FICHERO POR PARTE DEL RECEPTOR Y ENVIO DE SOLICITUD DE CONTENIDO

    'Informamos que le quieren enviar un fichero
    If MsgBox("Desean enviarle el fichero " & NombreF & " de " & TamanoF & Unidad &    vbCrLf & "¿Desea aceptarlo?", vbOKCancel, "Transferencia de Ficheros") = vbOK         Then
      'Si acepta mostramos la ventana de Guardar Como
      frmServidor.CDGuardar.Filter = "Todos los archivos|*.*"
      frmServidor.CDGuardar.DialogTitle = "Guardar Como..."
      frmServidor.CDGuardar.FileName = NombreF
      frmServidor.CDGuardar.ShowSave
      'Creamos el fichero
      FW = FreeFile
      Open frmServidor.CDGuardar.FileName For Binary As FW
      'y enviamos la peticion del contenido del fichero
      frmFicheros.WinsockFicheros.SendData "OKF"

BUCLE QUE REALIZA EL EMISOR EN EL CUAL VA ENVIANDO LOS DATOS EN APRTES DE 1024

   FE = FreeFile
   'Abrimos el fichero en modo binario
   Open frmFicheros.CD.FileName For Binary As FE
   Do While Not EOF(FE)
      DoEvents
      Posicion = Seek(FE)
      Seek (FE), Posicion
      'Leemos el fichero en pedazos de 1024
      Buffer = Input(1024, FE)
      'Agregamos cabecera correspondiente al contenido
      frmFicheros.WinsockFicheros.SendData "TOT" & Buffer
   Loop
   Close
   'A la ultima cadena le agregamos tres signos ":"  para indicarle que cierre el archivo
   frmFicheros.WinsockFicheros.SendData ":::"

ESCRITURA EN EL FICHERO POR PARTE DEL RECEPTOR

Put #FW, , Contenido


Como sé que es complicado encontrar el error mirando pequeñas partes de codigo, subi el proyecto a miarroba , les dejo la dire:
http://misficheros.webcindario.com
(espero que ande....)
Intente subirlo al ftp que se publica en este foro pero me da error y no me deja.

 Un saludo y espero que puedan ayudarme

scorpion25acv

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Transferencia De Ficheros Con Winsock
« Respuesta #1 en: Jueves 16 de Diciembre de 2004, 04:42 »
0
Hola en esta direccion, al final, encontre un ejemplo de transferencia de archivos por Winsock que funcionaba con dif. maquinas

talves te sirva

http://www.winsockvb.com/index.php?cat_id=3

suerte

crispi

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Transferencia De Ficheros Con Winsock
« Respuesta #2 en: Jueves 16 de Diciembre de 2004, 15:47 »
0
Muchas Gracias, voy a verlo y despues te cuento