Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Enviar archivos con componentes Indy- Cliente _Servidor (https://www.clubdelphi.com/foros/showthread.php?t=30378)

b3nyis 05-04-2006 00:29:09

Enviar archivos con componentes Indy- Cliente _Servidor
 
Hola a todo el mundo! Despues de mucho tiempo volví a programar con Delphi... y la verdad que despues de haber hecho un servidor de lineage (no lo hice con delphi... o sea... no se necesita saber mucho para hacerlo), me dieron ganas de hacerme mi propio servidor de CHAT tipo messenger... asi que ahora lo toy programando... la cosa es que ya casi lo toy terminando... empecé muy de 0 basandome en lo ejemplos que traen las compnentes Indy 9. Mi pregunta ahora es la siguiente, estuve leyendo que apra enviar archivos desde una aplicacion cliente a otra cliente o desde una aplicacion cliente a una servidor es necesario cargar el archivo en una STREAM y luego enviarla.
Pero no logro entender bien que es una stream y como enviarla con las componentes indy, ya que vi dos componentes que tienen nombres que terminan con stream, pero no se bien como usarlos, si es que son necesarios.(Esos componentes).
Alguien podria explicarme que es una stream y como enviarla con las componentes indy y si es posible un ejemplo.
Y tambien tengo otra duda... ya que si por ejemplo yo cargo en una variable string un mensaje que tiene emoticones, por ejemplos el texto que esté en un RxRixhEdit, solo se le carga el texto y cuando lo envio solo llega el texto... Ahora mi duda es como debo hacer para mandar el texto con los emoticones, tipo el messenger. Tambien seria usando stream? Actualmente estoy haciendo la aplicacion de tal forma que manda los caracteres y luego cuando los envia la aplicacion los interpreta y a los caracteres que corresponden los reemplaza por imagenes, por ejemplo a ":-)" lo cambia por ":)"

Y bue... la verdad que no se si me expresé bien, si no es asi, me lo dicen y voy a tratar de hacerlo mejor.

Desde ya muchisimas gracias!

Lepe 05-04-2006 11:08:25

Carpeta de Delphi\Demos\Indy\TCPStreamClientServer\

Tienes un ejemplo de Stream en esa carpeta. la clase base es TStream y de ella derivan TFileStream, TStringStream, TcustomMemoryStream, etc. Deberás usar el que mejor se acomode a tus necesidades.

TStream es simplemente un "flujo de datos", puedes asemejarlo a una tubería por el que puedes enviar datos de un origen al destino, de hecho, se puede usar para grabar en fichero, en memoria, etc.

Cita:

Empezado por Ayuda de TStream
TFileStream (for working with files)
TStringStream (for manipulating in-memory strings)
TMemoryStream (for working with a memory buffer)
TBlobStream (for working with BLOB fields)
TWinSocketStream (for reading and writing over a socket connection)
TOleStream (for using a COM interface to read and write)

Intuyo que TmemoryStream permitirá enviar tanto el texto como los emoticones, aunque no he trabajado con ellos.

El tema lo tienes aqui:
Código Delphi [-]
 with AThread.Connection do
  begin
        AStream := TStringStream.Create(SOutline);

        OpenWriteBuffer;
        WriteStream(AStream);
        CloseWriteBuffer;

        AStream.Free;
Simplemente creas el tipo de STream que necesites, llamas a OpenWriteBuffer para que empiece a "escuchar los datos que se grabaran en el Stream", Escribes con WriteStream(Tus datos y emoticones) y despues llamas a CloseWriteBuffer para que todos lo que se ha escrito se envíe por la red.

El problema lo tendrás en el parámetro de WriteStream, creo que el RxRichEdit tendrá algunas funciones como RxRichEdit1.Lines.SaveToStream que te ayudarán.

Saludos.


La franja horaria es GMT +2. Ahora son las 04:19:59.

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