Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   enviar imagen con sockets (https://www.clubdelphi.com/foros/showthread.php?t=62793)

jomanmoz 14-01-2009 21:57:38

enviar imagen con sockets
 
Hola. comañeros del foro.

He trabajado con sockets pero solo envio y recibo texto, como si fuese un chat. ha hora quisisera saber la forma de enviar y recivir imagenes jpg o bitmap.
para ser mas claro en lo que necesito, desearia que el socketServidor enviara la imagen contenida en un Timage, y el socketCliente la recibiera para mostrarla en otro Timage.
Se que para esto se envia un Stream, el codigo que he encontrado para enviar el stream es el siguiente:

al dra clic a un boton se ejecutaria el siguiente codigo:

procedure TForm1.Button2Click(Sender: TObject);
var
mystream: TMemoryStream;
begin
mystream:= TMemorystream.Create;
Image1.Picture.Bitmap.SaveToStream(mystream);
Cliente.socket.SendStream(mystream);
end;

Ha hora necesitaria el codigo faltante para que el SocketCliente reciba el stream y mostrarlo en un Timage.

he encontrado codigos pero no me an funcionado, por ejemplo este recibe el Stream y crea un archivo Bmp, pero no me funciona.

procedure TForm1.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
nReceived:integer;
Buffer: array [0..99999] of byte;
Stream:TMemoryStream;
begin
//Esta es la parte que se encarga del stream
Stream := TMemoryStream.Create;
Screen.Cursor := crHourglass;
try
while True do
begin
nReceived := Socket.ReceiveBuf (Buffer, sizeof (Buffer));
if nReceived <= 0 then//<--Si ya no se reciben datos, es decir, al terminar la transferencia
Break
else
Stream.Write (Buffer, nReceived);//<--Vamos rellenando el stream
Sleep (200);
end;
Stream.Position := 0;
stream.SaveToFile('c:\imagen.bmp');
finally
end;
Stream.Free;
Screen.Cursor := crDefault;
exit;
end;

Mi idea no es almacenar el stream en archivo, sino solo mostrar el stream en un Timagen. Alguien podria ayudarme.

Neftali [Germán.Estévez] 15-01-2009 10:55:24

Creo recordar que había un código de Domingo (Seoane) para esto.
Busca en los foros por sockets, TCP/IP o Cliente/Servidor a ver si encuentras el hilo con estas pistas.

jomanmoz 16-01-2009 08:31:08

ya encontre un ejemplo
 
gracias por el consejo, en los temas relacionados de la parte de abajo encontre un tema que decia: "Enviar y recibir archivos por sockets" y encontre un mensaje que mostraba el link de una pagina donde se puede descargar un ejmplo que funciona muy bien para la transferencia de archivos, el link es este:
http://www.planet-source-code.com/vb...d=783&lngWId=7


La franja horaria es GMT +2. Ahora son las 03:39:34.

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