unit main;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Psock, NMSTRM, Menus, ComCtrls, StdCtrls;type
  TFormMain = class(TForm)
    OpenDialogFile: TOpenDialog;
    SaveDialogFile: TSaveDialog;
    NMStrm1: TNMStrm;
    NMStrmServ1: TNMStrmServ;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    StatusBar1: TStatusBar;
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
      strm: TStream);
    procedure NMStrm1PacketSent(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  FormMain: TFormMain;
  filename : string;implementationuses setting;{$R *.dfm}procedure TFormMain.N1Click(Sender: TObject);
begin
  FormSetting.ShowModal;
end;procedure TFormMain.N3Click(Sender: TObject);
var
  FStream: TFileStream;
  str :string;
begin
  NMStrm1.Port := 8888;  if OpenDialogFile.Execute then
    filename := OpenDialogFile.FileName;
  Fstream := TFileStream.Create(filename,fmOpenRead);
  try
    NMStrm1.PostIt(Fstream);
  finally
    FStream.Free;
  end;
end;procedure TFormMain.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
  strm: TStream);
var
  FStream: TFileStream;
  filename : string;
begin
  if SaveDialogFile.Execute then
    filename := SaveDialogFile.FileName;  FStream := TFileStream.Create(filename, fmCreate);
  try
    FStream.CopyFrom(strm, strm.size);
  finally
    FStream.Free;
  end;
end;procedure TFormMain.NMStrm1PacketSent(Sender: TObject);
begin
  StatusBar1.SimpleText := ' 共 '+IntToStr(NMStrm1.BytesTotal)+' 发送了'+IntToStr(NMStrm1.BytesSent);
end;end.