Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question Indy velocidad de transferencia, por codigo.

Hola..

una duda..

¿como puedo establecer la maxima velocidad de transferencia con indy?

ejemplo.
usando idtcpclient.. para enviar un archivo a idtcpserver.

suponiendo una conexion de 1 por segundo,
no se la velocidad de transferencia de indy por segundo.
pero me parece que indy y sus componentes intentan usar
todo el ancho de banda. y yo quiero que use siempre la velocidad que
yo decida.

entonces que no trate de enviar. a 1 mega por segundo..
sino. a 45 kilobites,, o a 10,, o a 50, 0 100, o,,, 200
que siempre segun yo decida, trate de enviar los archivos,
usando esos valores como limite maximo y que no trate de hacerlo
segun la velocidad de la red.

sale gracias.
Responder Con Cita
  #2  
Antiguo 13-08-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Para empezar : No conozco los componentes Indy en profundidad.

Supongo que tendrías que hacer algo para que se envíe un paquete y se quede esperando un tiempo para enviar el siguiente.

Si cada paquete es de 1KB y quieres enviar a 1KB/seg, deberás enviar ese paquete y mantenerte esperando durante 1 segundo, antes de seguir enviando los siguientes.

Si quieres enviar a 4KB/s, deberás contar cuantos paquetes has enviado en el último segundo y quedarte en espera cuando llegues a 4.

Por ejemplo:
agregas una variable global, que cuente paquetes y otra que especifique la cantidad máxima de paquetes por segundo.
Código Delphi [-]
var 
   Paquetes : integer;
   MaxPaquetes : integer;

Código Delphi [-]
procedure TForm1.Create(Sender : TObject)
begin
   {Tamano de Paquete}
   ComponenteIndy.BufferSize := 1024;
   {Cantidad Máxima de Paquetes por Segundo}
   MaxPaquetes := 4; 
end;
agregas un Timer con 1 segundo de intervalo.

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Paquetes := 0;
end;

En el proceso que envía paquetes:
Código Delphi [-]
procedure OnIndyEnvioDePaquete
begin
   while (buffer_esté_lleno) and (Paquetes>MaxPaquetes) do
   begin
      {No hacer nada, pues me pasé del ancho de banda}
      Application.ProccessMessage;
   end;
end;

Última edición por duilioisola fecha: 13-08-2008 a las 11:51:10.
Responder Con Cita
  #3  
Antiguo 13-08-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Gracias
duilioisola

eso que dices no se me habia ocurrido.


pense que la cosa va por lo de definir el buffer size
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Indy 10 Codigo HTML incrustado ANALBA Internet 0 24-07-2008 11:00:20
Velocidad de Transferencia de Datos Neeruu Internet 2 03-01-2008 02:42:29
velocidad de transferencia muy lenta lookmydoom Redes 1 26-08-2006 18:34:49
Velocidad de transferencia... eisenco Internet 0 21-03-2005 08:58:05
Transferencia FTP no se finaliza DarkByte Internet 0 05-03-2005 10:39:35


La franja horaria es GMT +2. Ahora son las 23:31:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi