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 27-11-2012
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Crear Hilos de Ejecución con TIdFTP

Buenas tardes, he subido un archivo por ftp con los componentes indy usando el siguiente código

FTP := TIdFTP.Create( nil );
FTP.OnWork := FTPWork;

FTP.Username := miusuario;
FTP.Password := miclave;
FTP.Host := localhost;
try
FTP.Connect;
except
raise Exception.Create( 'No se ha podido conectar con el servidor ' + FTP.Host );
end;
FTP.Put( sArchivo, ExtractFileName( sArchivo ), False );
FTP.Disconnect;
FTP.Free;

Cuando subo un archivo no hay problema, el problema viene cuando intento subir muchos archivos casi que a la ves, me saca el siguiente error

raised exception class EIDSocketError with message 'Socket Error # 10048 Address already in use.'
Process stopped. Use Step or Run to continue.

Hey leído y una posible solución seria crear varios hilos de ejecución. pero a que se refieren con hilos, crear en tiempo de ejecución varios TidFTP ???

Como logra hacer esto o solucionar este problema muchas gracias de ante mano.
__________________
JaiMelendez
Responder Con Cita
  #2  
Antiguo 27-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #3  
Antiguo 27-11-2012
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Gracias casimiro, lo tendré en cuenta para la próxima.
__________________
JaiMelendez
Responder Con Cita
  #4  
Antiguo 27-11-2012
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola JAI_ME

Para el tema de los hilos de ejecución, te recomiendo leas un poco al respecto.

- Los Hilos de Ejecución
- Threading in Delphi

Eso te dará algunas ideas de como implementar lo que necesitas sobre los hilos de ejecución o te aclarará si necesariamente los requieres para solucionar tus problemas.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #5  
Antiguo 27-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
De todas formas, si quieres hacerlo con lo que tienes ahora, puedes controlar al llamar a esa función si ya está enviando algo, en ese caso esperas.
Puedes meter todos los envíos en una cola, una simple lista, y un timer que vaya comprobando si ya acabó de enviar, en cuanto está libre entonces envía el siguiente de la cola, y hasta que se terminen todos.
Responder Con Cita
  #6  
Antiguo 27-11-2012
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
De todas formas, si quieres hacerlo con lo que tienes ahora, puedes controlar al llamar a esa función si ya está enviando algo, en ese caso esperas.
Puedes meter todos los envíos en una cola, una simple lista, y un timer que vaya comprobando si ya acabó de enviar, en cuanto está libre entonces envía el siguiente de la cola, y hasta que se terminen todos.
Ya estoy estudiando el caso de los hilos, pero es interesante lo que comentas, a manera de ejemplo estoy haciendo lo siguiente.

En un boton tengo el siguiente código donde hago la llamada al procedimiento que envia al servidor

Cita:
procedure TForm1.Button1Click(Sender: TObject);
begin
for i := 1 to 10000 do begin
SubirArchivo('C:\mi_archivo.jpg');
Caption := inttostr(i);
end;
end;

como se dan cuenta envío el mismo archivo al servidor y hay veces que envía mas de 1000 archivos sin sacar el error, en este ejemplo como implemento lo que me comentas.

PD. la función subirArchivo tiene el código que expuse al principio.
__________________
JaiMelendez
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
Ayuda con Hilos de ejecucion kurono Varios 19 15-01-2011 15:36:40
Problema con hilos de ejecucion gueritox OOP 1 14-08-2010 15:26:06
como crear hilos de ejecucion en delphi 2007 pablopessoa Varios 1 23-10-2008 19:11:08
Aplicacion con varios Hilos de Ejecución samantha jones Varios 1 02-03-2005 17:27:24
Hilos de ejecucion el toluca Varios 2 29-06-2004 22:59:04


La franja horaria es GMT +2. Ahora son las 08:53:43.


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