SvrMain.pas
上传用户:zhanghw123
上传日期:2021-11-15
资源大小:312k
文件大小:1k
源码类别:

P2P编程

开发平台:

Delphi

  1. Unit SvrMain;
  2. Interface
  3. Uses
  4.   SysUtils, Classes, Controls, Forms,
  5.   StdCtrls, ComCtrls, ToolWin,
  6.   P2pServer, IDSocketHandle;
  7. Type
  8.   TFrmMain = Class(TForm)
  9.     ToolBar: TToolBar;
  10.     CmdStart: TToolButton;
  11.     CmdStop: TToolButton;
  12.     CmdQuit: TToolButton;
  13.     TxtLog: TMemo;
  14.     Procedure CmdStartClick(Sender: TObject);
  15.     Procedure CmdStopClick(Sender: TObject);
  16.     Procedure CmdQuitClick(Sender: TObject);
  17.     Procedure FormCreate(Sender: TObject);
  18.     Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
  19.   Private
  20.     IsRun: Boolean;
  21.     P2p: TP2pServer;
  22.   Public
  23.     { Public declarations }
  24.   End;
  25. Var
  26.   FrmMain: TFrmMain;
  27. Implementation
  28. {$R *.dfm}
  29. Procedure TFrmMain.CmdStartClick(Sender: TObject);
  30. Var
  31.   Binding: TIDSocketHandle;
  32. Begin
  33.   If IsRun Then Exit;
  34.   TxtLog.Clear;
  35.   P2p.Bindings.Clear;
  36.   Binding := P2p.Bindings.Add;
  37.   Binding.IP := '0.0.0.0';
  38.   Binding.Port := 9890;
  39.   P2p.StartServer;
  40.   IsRun := true;
  41. End;
  42. Procedure TFrmMain.CmdStopClick(Sender: TObject);
  43. Begin
  44.   P2p.StopServer;
  45.   IsRun := false;
  46. End;
  47. Procedure TFrmMain.CmdQuitClick(Sender: TObject);
  48. Begin
  49.   CmdStop.Click;
  50.   Sleep(300);
  51.   If P2p <> Nil Then FreeAndNil(P2p);
  52.   Application.Terminate;
  53. End;
  54. Procedure TFrmMain.FormCreate(Sender: TObject);
  55. Begin
  56.   P2p := TP2pServer.Create(TxtLog);
  57.   CmdStart.Click;
  58. End;
  59. Procedure TFrmMain.FormClose(Sender: TObject; Var Action: TCloseAction);
  60. Begin
  61.   CmdQuit.Click;
  62. End;
  63. End.