服务器端 :
unit u_server;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, oxBtns, jpeg, IdBaseComponent, IdComponent,
  IdTCPServer, DB, ADODB;type
  TF_sendserver = class(TForm)
    Image2: TImage;
    Ima_exit: ToxButton;
    Bevel2: TBevel;
    imgLeft: TImage;
    imgBottom: TImage;
    imgRight: TImage;
    Memo1: TMemo;
    IdTCPServer: TIdTCPServer;
    aq_loadfilesinfo: TADOQuery;
    procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure IdTCPServerExecute(AThread: TIdPeerThread);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  F_sendserver: TF_sendserver;
  SendFileName:String;implementation{$R *.dfm}
uses
u_login;procedure TF_sendserver.Image2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
{  If WindowState=wsMaximized then
  abort;
  releasecapture;
  perform(wm_syscommand,$f012,0);   }             //将IMAGE转换成标题,可移动
end;procedure TF_sendserver.FormCreate(Sender: TObject);
begin
  Top:=400;
  Left:=10;
  Ima_exit.Left:=width-25;
//  IMA_normal.Left :=X-48;
//  Ima_Min.Left :=width-48;
//  Ima_Max.Left :=X-48;
  aq_loadfilesinfo.Connection :=u_login.AC ;
end;procedure TF_sendserver.IdTCPServerExecute(AThread: TIdPeerThread);
Var
Sendfile: TFileStream;
begin
  aq_loadfilesinfo.Active :=true;
  F_sendserver.Show ;
  With AThread.Connection do
     begin
       Memo1.Lines.Add('Starting Send Files...... ======>OK!');
       With aq_loadfilesinfo do
         begin
         while not eof do
           begin
           Writeln(aq_loadfilesinfo.fieldbyname('files_name').AsString );
           showmessage(aq_loadfilesinfo.fieldbyname('files_name').AsString);
           SendFile :=TFileStream.Create('upload'+'/'+aq_loadfilesinfo.fieldbyname('files_name').AsString,Fmopenread);
           Writestream(Sendfile);
           Sendfile.Position :=0;
           Next;
         end;
       end;
       aq_loadfilesinfo.Close;
       Memo1.Lines.Add ('Total'+Inttostr(Sendfile.Size )+'Bytes Sent');
       Disconnect;
  end;
  sleep(500);
  Sendfile.Free;
  F_sendserver.Hide ;
end;end.客户端:unit u_Client;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, oxBtns, jpeg, ComCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient;type
  TF_Demo = class(TForm)
    Image2: TImage;
    Ima_Min: TImage;
    Ima_exit: ToxButton;
    Bevel2: TBevel;
    imgLeft: TImage;
    imgBottom: TImage;
    imgRight: TImage;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    e_server: TEdit;
    e_port: TEdit;
    Button1: TButton;
    Button2: TButton;
    IdTCPClient: TIdTCPClient;
    procedure FormCreate(Sender: TObject);
    procedure Ima_exitClick(Sender: TObject);
    procedure Ima_MinClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    StopTrans :Boolean;
    InTrans: Boolean;
  end;
var
  F_Demo: TF_Demo;implementation{$R *.dfm}procedure TF_Demo.FormCreate(Sender: TObject);
Var
X,Y:LongInt;
begin
  X:=GetSystemMetrics(SM_CXSCREEN);
  Y:=GetSystemMetrics(SM_CYSCREEN);
  Top:=0;
  Left:=0;
  Ima_exit.Left:=Width-25;
//  IMA_normal.Left :=X-48;
  Ima_Min.Left :=Width-48;
//  Ima_Max.Left :=X-48;
end;procedure TF_Demo.Ima_exitClick(Sender: TObject);
begin
  Application.Terminate ;
end;procedure TF_Demo.Ima_MinClick(Sender: TObject);
begin
  Application.Minimize ;
end;
procedure TF_Demo.Button1Click(Sender: TObject);
var
  Readfile: TMemoryStream;
  RecevFileName: String;
begin
  IdTCPClient.Host := Trim(e_server.Text );
  IdTCPClient.Port :=strtoint(trim(E_PORT.Text ));
  with IdTCPClient do
    begin
      connect;
      while connected do
      begin
      Readfile :=TMemoryStream.Create ;
      Try
        RecevFileName :=Readln;
        Memo1.Lines.Add('Recevfiles Name:  '+RecevFileName);
        Readstream(readfile,-1,true);
        Memo1.Lines.Add('Total  '+inttostr(readfile.Size ));
        readfile.Seek(0,sofrombeginning);
        Readfile.SaveToFile (Extractfilename(RecevFileName)) ;
      finally
        disconnect;
        readfile.Free;
      end;
  end;
  end;
end;end.
现有问题:无所传输多个文件,传单个文件是没有问题的。请帮忙指点。谢谢