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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SOLUCIONADO] Problema al abrir archivo para enviar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Problema al abrir archivo para enviar  (Leído 11,387 veces)
ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Problema al abrir archivo para enviar
« Respuesta #20 en: 4 Mayo 2011, 21:14 pm »

:/ nadie me puede ayudar?


En línea

DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Problema al abrir archivo para enviar
« Respuesta #21 en: 5 Mayo 2011, 06:44 am »

Mas claro que lo que dijo BlackZeroX▓▓▒▒░░ imposible...

Si aun se te complica, espesifica bien en donde te enredas. Saludos!


En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Problema al abrir archivo para enviar
« Respuesta #22 en: 6 Mayo 2011, 19:17 pm »

es que lo que necesito es que me ayuden a deducir como hacer para que este code envie bien los datos, envia todos los datos pero cada 1024 bytes se repite la palabra "*Teclas*" y que supuestamente no tendria que aparecer porque al principio del code borro los primeros 8 digitos que corresponden a la frase *Teclas* pero igual lo escribe en el richtextbox :S

gracias por tu respuesta blackzero, no entendi muy bien el tip que me pusiste, modificando un poco el codigo que tenia, logre realizar que se envien bien los datos, pero nose porque motivo el identificador que envio figura en el richtextbox. El codigo en el cliente quedo asi:

Código:
dim Identificador as string
dim Datos as string

Winsock1.GetData Datos

Identificador = Left(Datos, 8)
[b]Datos = Right(Datos, Len(Datos) - 8)[/b] 'Le borro a "Datos" los primeros 8 digitos que corresponden al indentificador

If Identificador = "*Teclas*" Then
        Archivo = Archivo & Datos
        RichTextBox1.Text = Archivo
End If

y el del servidor quedo asi:

Código:
Dim buf As String * 1024
Open App.path & "\Archivo.txt" For Binary As #3
    Do While EOF(3) = False
        DoEvents
        Get #3, , buf
        Winsock1.SendData "*Teclas*" & buf
    Loop
Close #3

El identificador es "*Teclas*", y supuestamente no tendria que escribirse en el richtextbox ya que al principio del code borra los primeros digitos que corresponden al identificador.

espero que me puedan ayudar  :-\ muchas gracias por su tiempo, BlackZero gracias por los codes que me has pasado ;)

En línea

ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Problema al abrir archivo para enviar
« Respuesta #23 en: 6 Mayo 2011, 19:21 pm »

.
No te recomiendo que lo hagas de esa manera es poco optimo mejor create un protocolo Ej:

Peticion de envio:  SendData <Argumentos>   El servidor debera responde con el mismo mensaje solo que con un true o false segun el caso si es true pasa a mandar el cliente el siguiente comando que serian:
Recepcion de Datos: InfoData <Argumentos> donde argumentos contiene TODA la informacion nesesaria por ejemplo el nombre del archivo, Peso del archivo.
y cuando termine de enviar los datos el servidor que es quien en ese momento esta contando los bytes cuando llegue a el ultimo envie el:
ReportData <Argumentos> donde argumentos es un reporte general y detallo de lo que se recivio.

Ejemplo del flujo:

Código:

//Suponiendo el flujo normal de transicion:
Cliente: SendData // si se manda el mensaje vacio es solo para verificar estatus...
Servidor: SendData True
Cliente: InfoData Archivo.exe|102400|c:\|filenew.exe|30
Servidor: SendData true
Cliente: manda todos los bytes de manera Compulsiva hasta que termina..
Servidor: Contara los bytes cuando llegue a 102400 segun lo que el cliente a dicho que enviara con el comando InfoData o que haya un retardo de 30 segundos que no se envien datos terminara de resivir los bytes y procedera a el siguiente comando:
Servidor: ReportData c:\|filenew.exe|102400
//Termina.


Código:

//Suponiendo que el servidor no permite la resepcion de transferencias:
Cliente: SendData // si se manda el mensaje vacio es solo para verificar estatus...
Servidor: SendData False
//Termina.


Código:

//Otro caso peculiar de este protocolo seria que terminara hasta aqui:
//Suponiendo el flujo normal de transicion:
Cliente: SendData // si se manda el mensaje vacio es solo para verificar estatus...
Servidor: SendData True
Cliente: InfoData Archivo.exe|102400|c:\|filenew.exe|30
Servidor: SendData false //si no hubiera espacio en disco, ya existe el archivo, claro este deberia ser mejor con algun numero que representara el estado por el cual no a seguido en lugar de un true y false ( 0 = Ok, 1=Archivoexistente, 2=Espacio en disco insuficiente, etc... )
//Termina.


SDe esta manera tu programa sera maleable y adaptable a un standart en tu programa y no a algo muy lineal... un ejemplo de esto es que mas o menos haci trabaja el protocolo HTTP 1.1 claro es mas complejo pero es similar.

Temibles Lunas!¡.

la verdad esto no lo entiendo muy bien, no logro deducir comoi hace para enviar los datos porque el winsock tiene un maximo de bytes que se puede enviar :S
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema al abrir archivo para enviar
« Respuesta #24 en: 7 Mayo 2011, 01:47 am »

@ŞCØRPIØN-X3@

Es cierto pero no es cierto, en primera si estuvieras trabajando directamente con las apis podrias cambiar los buffers, y en segunda por que ese buffer ya esta administrado ( en el OCX ) en otras palabras yo puedo mandar esto sin problemas!¡.

Este código ya te lo había dado y es lo mismo que haces tu solo que sin un do loop que es innecesario,
Código
  1.  
  2. const sfile as string = "C:\Archivo.txt"
  3. Dim bBuff() As byte  '  // usamos byte por que con string nos consumira el doble de memoria.
  4. Dim ff      As Integer
  5.    if (dir(sfile,vbarchive)<>"") then
  6.        ff = FreeFile
  7.        Open (sfile) For Binary As ff
  8.            if ( LOF(ff) > 0 ) then
  9.                redim bBuff( 0 to (LOF(ff)-1) ) ' // con una string seria    sBuff=space(LOF(ff))    sin el "-1"
  10.                Get ff, , bBuff
  11.            end if
  12.        Close ff
  13.        Form1.Winsock1.SendData bBuff
  14.    end if
  15.  
  16.  

Si traduces lo que te he dicho aqui podras hacerlo facilmente...

En el servidor en el DataRequest vendra a ser esto mas o menos asi:

Código
  1.  
  2. if not (bCmd1 and bCmd2) then
  3.        bCmd1 = ("comando1" = left$(vData,8) and bCmd2 = false)
  4.        bCmd2 = ("comando2" = left$(vData,8) and bCmd1 = false)
  5. elseif bCmd1 then
  6. '// To lo que se resiva ahora sera del comando1
  7. elseif bCmd2 then
  8. '// To lo que se resiva ahora sera del comando2
  9. else
  10. '// comando Erroneo
  11. end if
  12.  
  13.  

Igual es solo una idea no esta completo, Deberias depurar tu codigo y quitar ese Do Loop y armar el buffer ya que no hace nada importante, aun que quisas querias mandar el archivo por paquetes de 1024b, entonces hay le falto meter dentro la instruccion del winsock, pero si no es eso, entonces nesesitas limpiar la variable del servidor, es decir pueden ser mil y un cosas.

Dulces Lunas!¡.
.
En línea

The Dark Shadow is my passion.
ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Problema al abrir archivo para enviar
« Respuesta #25 en: 12 Mayo 2011, 23:34 pm »

muchas gracias al final si lo habia solucionado pero no tuve tiempo de comentar xD lo que hice fue encender una "llave" al recibir el identificador, asi todo el codigo que se reciba se almacene en el rich, una ves recibido todos los datos lo cierra. No es una muy buena solucion pero asi me anda bien xD. Muchas gracias por su ayuda.

Tema Solucionado
En línea

Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al enviar archivo
Programación Visual Basic
Meg 0 1,256 Último mensaje 19 Marzo 2007, 20:36 pm
por Meg
Problema enviar archivo « 1 2 ... 5 6 »
Programación Visual Basic
Jareth 53 11,383 Último mensaje 8 Abril 2007, 23:00 pm
por DrakoX
problema con enviar archivo y progressbar
Programación Visual Basic
vivachapas 4 2,237 Último mensaje 2 Agosto 2008, 16:18 pm
por vivachapas
problema al enviar archivo al navegador ?
Programación Visual Basic
rembolso 4 3,507 Último mensaje 22 Agosto 2009, 12:42 pm
por SRVAM
[Batch] Problema para enviar un find a un archivo y obtenerlo como variable
Scripting
Shike1000 2 4,102 Último mensaje 17 Febrero 2020, 18:50 pm
por Shike1000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines