Delphi - como enviar archivos comprimidos con Tclientsocket

 
Vista:

como enviar archivos comprimidos con Tclientsocket

Publicado por mireya (8 intervenciones) el 25/05/2005 08:28:42
Hola a todos!!!

Tengo un programa cliente que manda un archivo comprimido en gz utilizando el componente Tclientsocket, hasta ahi todo bien. Solo que cuando mando el fichero utilizando esto

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);

el fichero no me llega entero al servidor, siempre me falta la ultima linea.

Si alguien me pudiera ayudar se lo agradeceria.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como enviar archivos comprimidos con Tclientsoc

Publicado por beosman (163 intervenciones) el 26/05/2005 10:34:55
En lugar de abrir el archivo mediante la forma antigua (assign(), reset(),...) puedes utilizar un TFileStream para cargar el archivo y posteriormente enviar el archivo leyendo de dicho stream en lugar de utilizar la función move() a un buffer que siempre puede dar más problemas.

Saludos.

Diego :: beosman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como enviar archivos comprimidos con Tclientsoc

Publicado por mireya (8 intervenciones) el 26/05/2005 10:43:54
Gracias por todo pero al final ya lo he arreglado, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como enviar archivos comprimidos con Tclientsoc

Publicado por BigLuis (713 intervenciones) el 26/05/2005 20:19:37
No seria mala idea que exlicases como lo has solucionado para que todos aprendamos un poco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como enviar archivos comprimidos con Tclientsoc

Publicado por mireya (8 intervenciones) el 27/05/2005 08:13:29
Pues simplemente en la declaracion del buff que era de la siguiente forma:

buff : array [0..1023] of byte;

Ahora en vez de 1024 le he puesto a 2048 y funciona!!! es muy raro,raro,raro pero funciona. Queda asi:

buff:array[0..2047] of byte;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como enviar archivos comprimidos con Tclientsoc

Publicado por BigLuis (713 intervenciones) el 27/05/2005 19:00:50
Gracias Mireya, era por el bien de la comunidad.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar