serverforwardingthread.pas

来自「著名的SecureBlackBox控件完整源码」· PAS 代码 · 共 54 行

PAS
54
字号
unit ServerForwardingThread;

interface

uses
  ScktComp, SBSSHCommon, SBSSHHandlers, SBSSHForwardingHandlers;

type
  TSSHServerForwardingThread = class(TServerClientThread)
  private
    FHandler: TElServerTCPForwardingSSHSubsystemHandler;
    procedure TerminateRequest(Sender: TObject; var Terminate: boolean);
  protected
    procedure ClientExecute; override;
  public
    constructor Create(ASocket: TServerClientWinSocket);
    destructor Destroy; override;
    procedure Run(Conn: TElSSHTunnelConnection);
    property Handler: TElServerTCPForwardingSSHSubsystemHandler read FHandler;
  end;

implementation

constructor TSSHServerForwardingThread.Create(ASocket: TServerClientWinSocket);
begin
  inherited Create(true, ASocket);
end;

destructor TSSHServerForwardingThread.Destroy;
begin
  inherited;
end;

procedure TSSHServerForwardingThread.Run(Conn: TElSSHTunnelConnection);
begin
  FHandler := TElServerTCPForwardingSSHSubsystemHandler.CreateDelayed(Conn);
  FHandler.Socket := ClientSocket;
  FHandler.OnTerminateRequest := TerminateRequest;
  Resume;
end;

procedure TSSHServerForwardingThread.ClientExecute;
begin
  FHandler.Run;
end;

procedure TSSHServerForwardingThread.TerminateRequest(Sender: TObject;
  var Terminate: boolean);
begin
  Terminate := Self.Terminated;
end;

end.

⌨️ 快捷键说明

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