📄 uclient.pas
字号:
unit UClient;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
StdCtrls, ComCtrls, Mask, ToolEdit,math, DB, ADODB, DBClient;
type
TForm1 = class(TForm)
client: TIdTCPClient;
send: TMemo;
st: TStatusBar;
Button1: TButton;
Button2: TButton;
recv: TMemo;
Button3: TButton;
Button4: TButton;
edtFile: TFilenameEdit;
edtRemDIr: TEdit;
Button5: TButton;
ADOQuery1: TADOQuery;
Button6: TButton;
ClientDataSet1: TClientDataSet;
procedure Button1Click(Sender: TObject);
procedure clientStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses udm;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
if client.Connected then
client.Disconnect
else
begin
client.Port:=serverport;
client.Connect;
//client.Writeln('test');
//s:=client.ReadLn;
//recv.Lines.add(s);
end;
end;
procedure TForm1.clientStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
st.Panels[0].Text:=astatustext;
end;
procedure TForm1.Button2Click(Sender: TObject);
var s:string;
begin
client.Writeln('ECHO');
client.Writeln('Test');
s:=client.ReadLn;
recv.Lines.add(s);
end;
procedure TForm1.Button3Click(Sender: TObject);
var s:string;
begin
client.Writeln('MEMO');
client.writestrings(send.Lines,true);
s:=client.ReadLn;
recv.Lines.add(s);
end;
procedure TForm1.Button4Click(Sender: TObject);
var t:Tfilestream;s:string;
begin
if not fileexists(edtFile.text) then
begin showmessage('noFileExist');exit;end;
client.WriteLn('FILE');
client.WriteLn(edtFile.text);
client.WriteLn(edtRemDir.text);
t:=Tfilestream.Create(edtFile.Text,fmOpenRead );
t.Position:=0;
client.WriteStream(t,true,true);
t.free;
s:=client.ReadLn;
recv.Lines.add(s);
end;
procedure TForm1.Button5Click(Sender: TObject);
var t:Tfilestream;s:string;
buf:array [0..1024] of byte;
iCount:integer;
begin
if not fileexists(edtFile.text) then
begin showmessage('noFileExist');exit;end;
client.WriteLn('FILELARGE');
client.WriteLn(edtFile.text);
client.WriteLn(edtRemDir.text);
t:=Tfilestream.Create(edtFile.Text,fmOpenRead );
t.Position:=0;
client.Writeinteger(t.size);
//iCount:=ceil(t.Size/length(buf));
while t.size>t.Position do //for i:=0 to iCount do
begin
if (t.size-t.Position)>length(buf) then
iCount:=length(buf)
else
iCount:=(t.size-t.Position);
t.ReadBuffer(buf,iCount);
client.Writebuffer(buf,iCount);
end;
t.free;
s:=client.ReadLn;
recv.Lines.add(s);
end;
procedure TForm1.Button6Click(Sender: TObject);
var t:Tfilestream;s:string;
f:string;
begin
f:='c:\ls1';
adoquery1.Open;
adoquery1.SaveToFile(f);
adoquery1.close;
edtFile.Text:=f;
if not fileexists(edtFile.text) then
begin showmessage('noFileExist');exit;end;
client.WriteLn('ADOFILE');
//client.WriteLn(edtFile.text);
//client.WriteLn(edtRemDir.text);
t:=Tfilestream.Create(f,fmOpenRead );
t.Position:=0;
client.WriteStream(t,true,true);
t.free;
s:=client.ReadLn;
recv.Lines.add(s);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -