Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2009
maurici0 maurici0 is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
maurici0 Va por buen camino
Unhappy Enviar archivos Indy 10

Editado: ya esta resuelta la duda (Espero que algun administrador pueda cambiar el titulo y ponerle resuelto, esta la solución mensaje #7...

Hola a todos, antes que nada soy nuevo por aca ..

Bueno mi duda es la siguiente:

Teoria:
Tengo mi cliente y servidor, lo que quiero hacer es que el usuario (seleccione un archivo), y le de enviar, para que el servidor lo cache y lo guarde en una carpeta (ya asiganda previamente), pero con indy y sin usar FTP :S, ya que despues el servidor le regresa un archivo al cliente (una especie de actualizacion).


Resumen:
Cliente envie archivo -> servidor cache y guarde -> servidor genera un archivo ->envia al cliente ->el programa del cliente lo guarda.


Alguna idea de como mandarlo?,
Basandome en tutoriales y toda la cosa, puedo enviar desde un cliente mensajes (tipo chat) al servidor. (Uso el IdTCPClient1, y el IdTCPServer1)



Gracias, espero haberme explicado bien.

Última edición por maurici0 fecha: 26-02-2009 a las 20:09:52. Razón: Agregar comentarios
Responder Con Cita
  #2  
Antiguo 18-02-2009
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
En esta página tienes un faq que puede venirte de perlas... Un problemilla:

¡¡ Está en francés !! Aunque creo que el código es bastante evidente.

Un saludo
Responder Con Cita
  #3  
Antiguo 18-02-2009
maurici0 maurici0 is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
maurici0 Va por buen camino
Muchas gracias ElKurgan, lo estare checando y si me sirve lo que necesito te lo agradecere mas jejeje....

Estuve investigando en el foro que lo hacen con el idHTTP, pero es para el 9 :S...
Esperare a que alguien mas responda (En lo que reviso la pagina que me dieron)..



Gracias!
Responder Con Cita
  #4  
Antiguo 18-02-2009
maurici0 maurici0 is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
maurici0 Va por buen camino
En efecto, viendo la pagina que me dices, esta lo que necesito, solo que la instrucción TIdStreamVCL no la tengo, nose si cambie en alguna versión o algo asi, he revisado mi libreria y si tengo el archivo TIdStreamVCL.dcu, y he buscado cual es la que sustituye a esa y no encuentro nada, espero alguien me pueda ayudar, gracias!

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
 LWrapper : TIdStreamVCL;
 LStreamSize : int64;
begin
 IdTCPClient1.Connect;
 try
   LWrapper := TIdStreamVCL.Create(TFileStream.Create('c:\test.txt',fmOpenRead), True);
   try
      {Récupérer la taille du flux original}
      LStreamSize := LWrapper.VCLStream.Size;
      {Envoyer la taille}
      IdTCPClient1.IOHandler.Write(LStreamSize);
      {Envoyer le flux}
      IdTCPClient1.IOHandler.Write(LWrapper, 0);
   finally
      FreeAndNil(LWrapper);
   end;
 finally
   IdTCPClient1.Disconnect;
 end;
end;
Responder Con Cita
  #5  
Antiguo 19-02-2009
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
¿Tienes bien instaladas las Indy 10?

Porque yo encuentro su definición en la Unit "IdStreamVCL.pas"

Un saludo
Responder Con Cita
  #6  
Antiguo 26-02-2009
maurici0 maurici0 is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
maurici0 Va por buen camino
Pues tengo el delphi 2009 lite... no le he tocado absolutamente nada, de hecho baje el indy10 de la pagina y al compilar los

IndySystemX0.dpk (in Lib\System) <- Me sale 3 errores (seleccione el 120)
IndyCoreX0.dpk (in Lib\Core) -> me sale 1 error
IndyProtocolsX0.dpk (in Lib\Protocols) -> ya ni lo intente.
Responder Con Cita
  #7  
Antiguo 26-02-2009
maurici0 maurici0 is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Poder: 0
maurici0 Va por buen camino
Bueno al final lo hice de otra manera pero se pudo:

Cliente:
Código Delphi [-]
procedure TForm4.Button1Click(Sender: TObject);
var
   FStream: TFileStream;

begin
  //Creamos conexion
  IdTCPClient1.Host:='127.0.0.1'; //Prueba local
  IdTCPClient1.Port:=1050;
  IdTCPClient1.Connect;
  IdTCPClient1.Socket.WriteLn(mensaje.text); //Tomo un mensaje escrito

  FStream := TFileStream.Create('C:\cliente.jpg', fmOpenRead); //Busco el archivo que quiero pasar
  try
    IdTCPClient1.IOHandler.Write(Fstream,0,true); //Mando archivo
  finally
    IdTCPClient1.Disconnect;
  end;
  FreeAndNil(FStream);

  IdTCPClient1.Disconnect;

end;

Servidor:
Código Delphi [-]
procedure TForm5.IdTCPServer1Execute(AContext: TIdContext);
var
sMensaje: String;
  s, sCommand, sAction : string;
    fStream : TFileStream;

begin
  //Traigo y  muestro mensaje
  sMensaje := AContext.Connection.Socket.ReadLn;
  Mensaje.Lines.Add( 'De: ' + AContext.Binding.PeerIP );
  Mensaje.Lines.Add( 'Mensaje: ' + sMensaje );
  //Guardo archivo enviado
  FStream := TFileStream.Create('C:\prueba\servidor.jpg', fmCreate);
  try
    AContext.connection.IOHandler.ReadStream(fstream);
  finally
    AContext.connection.Disconnect;
  end;
  FreeAndNil(FStream);

end;


Espero que a alguien le sirva , gracias a ElKurgan por su tiempo.
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
enviar memorystream no indy 9 tcp Mike Deet Internet 2 13-12-2007 21:19:05
Enviar correo con SMTP de GMAIL via INDY 10 (idSMTP) lpedrazzi Internet 4 31-12-2006 22:30:26
Enviar archivos con componentes Indy- Cliente _Servidor b3nyis Internet 1 05-04-2006 11:08:25
Problema para enviar email con indy delphi7 cmena Internet 2 13-10-2005 21:58:55
Enviar email con copia y adjunto con indy cmena Internet 4 01-10-2005 01:14:00


La franja horaria es GMT +2. Ahora son las 11:04:21.


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