Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Послать файл от TServerSocket на TClientSocket

Мой адрес на дом и не улица, мой адрес тройной дабл ю.


unit Unit1; 

interface 

uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ScktComp, StdCtrls; 

type 
  TForm1 = class(TForm) 
    ClientSocket1: TClientSocket; 
    ServerSocket1: TServerSocket; 
    btnTestSockets: TButton; 
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); 
    procedure FormCreate(Sender: TObject); 
    procedure FormDestroy(Sender: TObject); 
    procedure ClientSocket1Disconnect(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure ClientSocket1Connect(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure ServerSocket1ClientConnect(Sender: TObject; 
      Socket: TCustomWinSocket); 
    procedure btnTestSocketsClick(Sender: TObject); 
  private 
    FStream: TFileStream; 
    { Private-Deklarationen } 
  public 
    { Public-Deklarationen } 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.ClientSocket1Read(Sender: TObject; 
  Socket: TCustomWinSocket); 
var 
  iLen: Integer; 
  Bfr: Pointer; 
begin 
  iLen := Socket.ReceiveLength; 
  GetMem(Bfr, iLen); 
  try 
    Socket.ReceiveBuf(Bfr^, iLen); 
    FStream.Write(Bfr^, iLen); 
  finally 
    FreeMem(Bfr); 
  end; 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  FStream := nil; 
end; 

procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  if Assigned(FStream) then 
  begin 
    FStream.Free; 
    FStream := nil; 
  end; 
end; 

procedure TForm1.ClientSocket1Disconnect(Sender: TObject; 
  Socket: TCustomWinSocket); 
begin 
  if Assigned(FStream) then 
  begin 
    FStream.Free; 
    FStream := nil; 
  end; 
end; 

procedure TForm1.ClientSocket1Connect(Sender: TObject; 
  Socket: TCustomWinSocket); 
begin 
  FStream := TFileStream.Create('c:\temp\test.stream.html', fmCreate or fmShareDenyWrite); 
end; 

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; 
  Socket: TCustomWinSocket); 
begin 
  Socket.SendStream(TFileStream.Create('c:\temp\test.html', fmOpenRead or fmShareDenyWrite)); 
end; 

procedure TForm1.btnTestSocketsClick(Sender: TObject); 
begin 
  ServerSocket1.Active := True; 
  ClientSocket1.Active := True; 
end; 

end.

Проект Delphi World © Выпуск 2002 - 2024
Автор проекта: USU Software
Вы можете выкупить этот проект.