Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Mar : Re: FTP in Thread

www.cryer.info
Managed Newsgroup Archive

Re: FTP in Thread

Subject:Re: FTP in Thread
Posted by:"Guillem" (guillemvicens-nospam@clubgreenoasis.com)
Date:10 Apr 2006 04:21:06

sham wrote:

> Further to may last email:
>
> Client :
> procedure TForm1.Button1Click(Sender: TObject);
> var
>  FFTPClient: TIdFTP;
>  i : integer;
>  FileList : TStringList;
>  currentDirectory : String;
>  FileStream : TFileStream;
>  filename : string;
>  sizeOfFile : integer;
> begin
>  Button1.Enabled := False;
>
> currentDirectory :=
> IncludeTrailingPathDelimiter(ExtractFileDir(Application.ExeName));
> for i := 1 to 100 do    begin
>      FileList := TStringList.Create;
>      try
>        FileList.Add('TestDemo' + intToStr(i));
>        fileName := currentDirectory + 'TestDemo' + intToStr(i) +
> '.dat';        FileList.SaveToFile(fileName);
>      finally
>        FileList.Free;
>      end;
>    end;
>
>  FFTPClient:= TIdFTP.create(nil);
>  try
>    FFTPClient.Host := '127.0.0.1';
>    FFTPClient.Port := 21;
>    FFTPClient.Username := 'abc';
>    FFTPClient.Password := '';
>    FFTPClient.TransferType := ftBinary;
>    FFTPClient.ReadTimeout := 5000;

that's a very short timeout. Default value is 60000.

What kind of authentication are you using on the server?

OTOH I see you are not setting any proxy values. I guess you are not
working with any, are you?

>
>    FFTPClient.Connect();
>    try
>       for i := 1 to 100 do
>         begin
>           fileName := 'TestDemo' + intToStr(i) + '.dat';
>           FileStream := TFileStream.Create(fileName, fmOpenRead);
>           try
>             sizeOfFile := FileStream.Size;
>
>            FFTPClient.Put(FileStream, fileName + '-FS=' +
> intToStr(sizeOfFile));           finally
>             FileStream.Free;
>           end;
>         end;
>
>   finally
>     FFTPClient.Disconnect;
>   end;
>  finally
>    FFTPClient.Free;
>  end;
>
>  Button1.Enabled := True;
> end;

where do you create the worker thread?

>
> Server :
>
> procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
>  const AFileName: String; AAppend: Boolean; var VStream: TStream);
> var
>  tempFileName : string;
> begin
>  tempFileName := StringReplace(AFileName, '/', '\', [rfReplaceAll]);
>  VStream := TFileStream.Create('D:\data' + tempFileName, fmCreate);
> end;
>
> procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerThread;
>  const AUsername, APassword: String; var AAuthenticated: Boolean);
> begin
> AAuthenticated := True;
> end;
>
> That is pretty much it.
>

--
Best regards :)

Guillem Vicens Meier
Dep. Informatica Green Service S.A.
www.clubgreenoasis.com

Replies:

In response to:

www.cryer.info
Managed Newsgroup Archive