服务器端 :
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.
现有问题:无所传输多个文件,传单个文件是没有问题的。请帮忙指点。谢谢
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.
现有问题:无所传输多个文件,传单个文件是没有问题的。请帮忙指点。谢谢
解决方案 »
- 关于WinSock API编程的问题,请帮我看看程序,谢谢!
- 为什么我写程序总觉得很累?
- 请问在定义一个string类型的变量时,系统实际分配多少空间?
- 我的249个字段,这对操作有影响吗?
- 高分请问:如何在查询中让Treeview中某一(符合条件)节点获得焦点(选定),感谢!
- 救命啊,,这个怎么也不行,,MSN现在的协议是什么啊,,用DELPHI怎么实现啊,,
- 从网上下载了一程序,在运行时 提示Counld not find program ,'C:\程序\abc.exe'
- 用delphi在win内核下编程???
- HELP!!!:DELETE FROM userinfo WHERE 用户名= ''usr''',出错了。
- 能否使数据库应用程序放在数据库别名制定的位置之外运行?
- 大家帮我看看,这段D5-->D7的代码问题出在哪里
- 一个奇怪的特别的问题。。。。
大侠:
CoolSlob (两只老鼠两只老鼠真奇怪真奇怪)