⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client1.~pas

📁 基于TCP/IP通信协议控件
💻 ~PAS
字号:
unit client1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls,extctrls,IdBaseComponent,IdComponent, IdTCPConnection, IdTCPClient,  IdAntiFreezeBase, 
IdAntiFreeze, Buttons;

type
  TForm2 = class(TForm)
    ListView1: TListView;
    Edit1: TEdit;
    Button1: TButton;
    IdAntiFreeze1: TIdAntiFreeze;
    IdTCPClient1: TIdTCPClient;
    UpDown1: TUpDown;
    SpeedButton1: TSpeedButton;
    Edit2: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Edit3: TEdit;
    Button2: TButton;
    SaveDialog1: TSaveDialog;
    Label2: TLabel;
    Label3: TLabel;
    
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    
    procedure Button2Click(Sender: TObject);

    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

    var 
ReadFile: TMemoryStream; 
RecevFileName: string; 
begin
IdTCPClient1.Host := Edit2.Text;//服务器的地址为Edit2的内容(端口我们已经指定为8090,这个是在属性面板里面设置的 ) 

with IdTCPClient1 do 
begin 
Connect;//连接到服务器 

while Connected do 
begin 
ReadFile := TMemoryStream.Create;//创建一个TMemoryStram对象 

try 
RecevFileName := ReadLn;//从服务器端获得文件名
Edit3.Text :=RecevFileName;
//ListView1.Items.Add ('1');     //显示到ListView中 
ReadStream(ReadFile, -1, True);//以流模式从服务器端获得文件内容,参数分别是ReadFile表示流对象,-1表示一直读取直到对方断开,True表示在NT操作系统下提高性能,对9x无效
//ListView1.items.Add('Total ' + IntToStr(ReadFile.Size) + ' Bytes recevied');//显示总共接收到多少数据 
ReadFile.Seek(0, soFromBeginning);//定位流指针到开始 
ReadFile.SaveToFile(ExtractFileName(RecevFileName));//把流中的内容保存到文件中去 
//Memo1.Text := ExtractFileName(RecevFileName);

finally 
Disconnect;//断开连接 

ReadFile.Free;//释放流对象 

end; 
end; 
end; 
end;



procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
  listview1.Items.Clear ;
end;



procedure TForm2.Button2Click(Sender: TObject);
begin
 if SaveDialog1.Execute  then//执行文件选择标准对话框,选择要发送的文件 

     begin 
     //Memo1.Text := OpenDialog1.Filename;//文件名赋值给SendFileName变量 
     Edit1.Text := SaveDialog1.Filename;
     end;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -