PDA

Ver la Versión Completa : Transferencia de Archivos x Sockets


ØnLy
16-10-2010, 17:31:30
Bueno les traigo otra de mis dudas de novato!

Les planteo mi situacion , actualmente estoy haciendo una
aplicacion cliente- servidor , el cliente esta en VB y el servidro el DELPHI , Haora estoy tratando de mandar una archvio de cliente al servidor...


enviar la data desde VB es sencillo pero...
no estoy seguro de como hacer para que el servidor(Delphi) reciva la data desde el cliente y cree un nuevo archivo con ella????

La data enviada esta almacenada en un string de VB , cosa que no creo deberia representar un problema !?!?

Saludos y gracias de antemano!

kurono
17-10-2010, 01:02:47
utilizando el componente SocketServer en el evento OnclientRead escribe este codigo

Edit1.Text:=Socket.ReceiveText;

deberas asignarle el mismo puerto que en la parte cliente

ØnLy
17-10-2010, 01:27:23
Ehh , esa seria la manera de recivir texto mediante el socket( Cosa que se)
pero yo hablo de recibir un string con la data de un archivo y desde delphi , recivirla y crear un nuevo archivo co ella........

alo comp

var
Data : string;

begin

data : socket.ReceiveText;

WriteFile( Data ) // <<< Esta parte es la que mas me confunde

end.

No se si me explique bien , pero espero que alguin me ayude!

ecfisa
17-10-2010, 02:33:45
Ehh , esa seria la manera de recivir texto mediante el socket( Cosa que se)
pero yo hablo de recibir un string con la data de un archivo y desde delphi , recivirla y crear un nuevo archivo co ella........

alo comp

var
Data : string;

begin

data : socket.ReceiveText;

WriteFile( Data ) // <<< Esta parte es la que mas me confunde

end.

No se si me explique bien , pero espero que alguin me ayude!

Hola.


...
var
txt: TextFile;
Str: string;
begin
Str:= Socket.ReceiveText;
AssignFile(txt,'UNIDAD:\RUTA\NOMBRE_DE_ARCHIVO.TXT'); //unidad,ruta,nombre y extensión a gusto...
try
Reset(txt);
except
Rewrite(txt);
end;
Writeln(txt, Str);
CloseFile(txt);
end;


Guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

Saludos. :)

ØnLy
17-10-2010, 02:39:43
A eso me referia! xD
Y como seria el por ejemplo para mandar una imagen.... del servidor al cliente

Tengo este codigo para mandar pero no se como recibirlo para guarlo!

var

stream : TMemoryStream;

begin

stream := TMemorystream.Create;//Creamos el bufefr para el stream

//Metemso la imagen en el stream
image1.Picture.Bitmap.SaveToStream( stream );

///Enviamosel stream con al data
socket.SendStream( stream );

end;

Como reciviriamos esa data y reproducirla en otro TImage sin meterla en una archivo primero?

Saludos

kdemia
20-03-2011, 07:08:05
estoy en lo mismo que vos.. yo hice este codigo que no funciona pero supuestamente tendria que funcionar, a ver si alguien lo mejora...

procedure onreaddelserversocket ( ..parametros..);
var
Stream: TMemoryStream;
Size: Integer;
begin
Stream:= TMemoryStream.Create;
Size:= Socket.ReciveLength;
Socket.ReciveBuf(Stream, Size);
Image1.Picture.Bitmap.LoadFromStream(Stream);
Stream.Free;
end;