Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19-09-2007, 19:13:43
acalanto acalanto is offline
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Parece ser que mi respuesta del otro día no te ha servido...por ello abres un nuevo post con la misma pregunta y practicamente el mismo código.

Como la pregunta la realizas en un nuevo post y por consiguiente, el resto de usuarios no tiene porqué conocer el origen anterior de la pregunta, me obligas a poner en antecedentes y refrescar la memoria.

En mi respuesta anterior te aconsejaba controlar el numero de bytes recibidos y esto lo debe realizar en el evento DataArrival del cliente. Como esta parte del código no la adjuntas, y ni tan siquiera cabe suponer que los datos recibidos los trates de recibir en este evento, he de reiterarte a que el conteo de bytes lo hagas en el lugar adecuado (DATAARRIVAL) y en todo caso, que intentes aclarar como lo estás haciendo en tu código.

Si las preguntas son tan confusas como la que tu haces, no puedes pretender recibir respuestas más allá de las conjeturas que otros usuarios puedan hacer, pero en todo caso (norma del foro) no insertes un nuevo post con la continuación de una consulta ya realizada.


No sé si ahora entiendes lo que trato de transmitirte.


PD. Por si no lo recuerdas, y para que sirva de orientación a otros usuarios que lean tu pregunta, este es mi anterior mensaje.


Cita:
Bueno, tú código no aclara demasiado como recibe los datos el cliente...el servidor parece ser que los envía todos en una única trama.

En principio, implementar una barra de progreso, es tan sencillo como tener el control sobre una determinada magnitud porcentual.

En tu caso tienes que conocer el total de bytes del fichero y la cantidad recibida por el socket. La fórmula es sencilla:

me.socketFileBar = iif((100*(recibidos/total))>me.socketFileBar.Max, me.socketFileBar.Max, 100*(recibidos/total)))

Fíjate bien que asigno el valor mediante un condicional inline, así procuro evitar que por redondeos incontrolados, el valor supere el máximo admitido por el control progressbar.


Lógicamente, debes insertar en el formulario un progressbarr, y modificar los nombres que yo he puesto por los que tú consideres convenientes. El nu´mero de bytes transmitidos por el socket supongo que ya lo debes tener bajo control, ya que esa parte de código no la adjuntas.


Espero que te resulte útil.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita