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

📄 scanhostportthreadunit.pas

📁 DELPHI 下远程控制源码
💻 PAS
字号:
unit ScanHostPortThreadUnit;

interface

uses
  Classes, IdTCPClient,SysUtils,ComCtrls,IdSocks;

type
  ScanHostPortThread = class(TThread)
  private
    { Private declarations }
  protected     
    SaveTL:TTreeView;
    ScanTheIP  :String;
    ScanThePort:integer;
    MyTcpClient:TIdTcpClient;
    //TheScktInfo:TSocksInfo;
    Procedure SaveIP;     
    procedure Execute; override;
  public
    Constructor Create(TheIP:String;ThePort:integer;TheTL:TTreeView);
    Destructor Destroy;override;
  end;

implementation
uses ScanIPUnit;
Constructor ScanHostPortThread.Create(TheIP:String;ThePort:integer;
                                                        TheTL:TTreeView);
begin
  inherited Create(True);
  self.FreeOnTerminate:=True;
  ScanTheIP:=TheIP;
  ScanThePort :=ThePort;
  SaveTL:=TheTL;
  MyTcpClient:=TIdTcpClient.Create(nil);
  //TheScktInfo:=TSocksInfo.Create;
    
  LetScanSingle.Enter;
    SdScanCount:=SdScanCount+1;
  LetScanSingle.Leave;

  self.Suspended:=False;
end;  

procedure ScanHostPortThread.Execute;
begin
  //TheScktInfo.Authentication:=saNoAuthentication;
  //TheScktInfo.Version:=svNoSocks;
  //TheScktInfo.Port:=0;
 // MyTcpClient.SocksInfo:=TheScktInfo;
 // MyTcpClient.UseNagle:=True;
  MyTcpClient.Host:=ScanTheIP;
  MyTcpClient.Port:=ScanThePort;
  try
   MyTcpClient.Connect;
  except
  end;
  if MyTcpClient.Connected then
  begin
     Synchronize(SaveIP);
     MyTcpClient.Disconnect;     
  end;
  Self.Terminate;
end;
Procedure ScanHostPortThread.SaveIP;
var
  i:integer;
  TheNode:TTreeNode;
  TheNewNode:TTreeNode;
begin
  For i:=0 to SaveTL.Items.Count-1 do
  begin
     if SaveTL.Items[i].Text=ScanTheIP then
                   TheNode:=SaveTL.Items[i];
  end; 
  TheNewNode:=SaveTL.Items.AddChild(TheNode,IntToStr(ScanThePort));
  TheNewNode.ImageIndex:=1;
  TheNewNode.SelectedIndex:=1;
  TheNewNode.StateIndex:=1;                                 
end;
Destructor ScanHostPortThread.Destroy;
begin 
  MyTcpClient.Free;
  //TheScktInfo.Free;  
  LetScanSingle.Enter;
    SdScanCount:=SdScanCount-1;
  LetScanSingle.Leave;
  inherited Destroy;  
end;

end.
 

⌨️ 快捷键说明

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