lo segundo es lo que ago porque si un usuario de la lista se desconecta quedan con distintos index, poreso es que le aplico al tag de cada item el valor del index...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: BlackZeroX▓▓▒▒░░ en 28 Abril 2011, 23:13 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:
//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!¡.
Cita de: ŞCØRPIØN-X3 en 30 Abril 2011, 23:41 PM
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