IdFTP: TIdFTP;
...
procedure TForm1.IdFTPWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
   IdFTP.Disconnect;

   try

      IdFTP.Connect;

      IdFTP.ChangeDir( directory );
      IdFTP.Put( fileName, ExtractFileName( fileName ) );

   except

   end;

end;


这是大多数代码。
我希望当1个上传完成后开始另一个,但是此代码似乎会引发错误10048。


将文件和命令序列上传到服务器是否正确?
为什么此错误10048上升,以及如何解决?

最佳答案

错误10048 =套接字已在使用中:info

您不需要WorkEnd事件,Put语句在完成上传文件后返回:

  // loop
  for I := 0 to files.Count-1 do
  begin
    idFtp1.Connect;
    idFtp1.Put(files[i]);
    idFtp1.Disconnect;
  end;

  // or
  idFtp1.Put('MyFirstFile');
  idFtp1.DisConnect;
  // ......
  idFtp1.Connect;
  idFtp1.ChangeDir('DirSecondFile');
  idFtp1.Put('MySecondFile');

10-08 04:48