PDA

Ver la Versión Completa : como enviar un archivo comprimido con Tcliensocket


infochica
25-05-2005, 09:57:13
Hola a todos:

Estoy haciendo un programa de envio de ficheros comprimidos en gz utilizando el componente Tclientsocket de delphi, hasta ahi bien. El error es que nunca me llega la ultima linea del fichero al servidor. Utilizo este codigo para mandar el fichero comprimidor:

vpath:='C:\Documents and Settings\mireya\Mis documentos\'+nombrefichero;
Assignfile(A,vpath);
reset(A);
Longitud:=FileSize(A);
Leidos:=0;
while Longitud > 0 do
begin
move(buff2,Buff,sizeof(Buff));
BlockRead(A,Buff[0],SizeOf(Buff),Leidos);
ClientSocket1.socket.SendBuf(Buff[0],SizeOf(Buff));
Longitud:=Longitud - Leidos;
end;
CloseFile(A);

Haber si alguien me puede ayudar.

Gracias

jachguate
25-05-2005, 16:38:35
Hola infochica. Bienvenida a los foros del clubdelphi. Ya que sos nueva pora qui, te recomiendo la lectura de la guia de estilo (http://www.clubdelphi.com/foros/guiaestilo.php). También que te intereses por aprender a usar las etiquetas [ code ], [ delphi ] y [ sql ], que te permiten publicar trozos de código perfectamente indentados y con la sintaxis resaltada.

Viendo someramente el código que enviaste, me parece que mas que no enviar la última línea, envia caracteres de mas, con basura.

Cambiá la línea


ClientSocket1.socket.SendBuf(Buff[0],SizeOf(Buff));


por:


ClientSocket1.socket.SendBuf(Buff[0],Leidos);


Creo que con eso debiera funcionar sin mas.

Hasta luego.

;)