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

📄 scanner.pas

📁 2003年的远程控制
💻 PAS
字号:
unit scanner;

interface

uses
  Classes,sysutils;

type
  Tscanner = class(TThread)
  private
    { Private declarations }
   destination:string;
   port:integer;
   result:integer;
  protected
    procedure Execute; override;
    procedure Ok_Adres;
    procedure Bad_adres;
  public
    constructor Create(dest:string;p:integer);
  end;

implementation

uses winSock,main;

function gettimeout(sock:integer):integer;
var len,timeout:integer;
begin
len:=sizeof(timeout);
getsockopt(sock,IPPROTO_TCP,SO_SNDTIMEO,Pchar(@timeout),len);
gettimeout:=timeout;
end;

procedure settimeout(sock:integer;timeout:integer);
var len:integer;
begin
len:=sizeof(timeout);
setsockopt(sock,SOL_SOCKET,SO_SNDTIMEO,Pchar(@timeout),len);
setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,Pchar(@timeout),len);
end;

constructor Tscanner.Create(dest:string;p:integer);
begin
 destination:=dest;
 port:=p;
 FreeOnTerminate := True;
 inherited Create(False);
end;

procedure Tscanner.Ok_Adres;
begin
form1.netlist.Rowcount:=form1.netlist.rowcount+1;
form1.netlist.Rows[form1.netlist.rowcount-2].commatext:='new,'+destination+','+inttostr(port)+',prosiak';
form1.netlist.Rows[form1.netlist.rowcount-1].commatext:='';
end;

procedure Tscanner.Bad_adres;
begin
//form1.netlist.Rowcount:=form1.netlist.rowcount+1;
//form1.netlist.Rows[form1.netlist.rowcount-2].commatext:=inttostr(result);
end;

procedure Tscanner.Execute;
var ssock:integer;
    addr:tsockaddrin;
    res,nonblock:integer;
    fdset:TFDSet;
    timeo:TTimeVal;
begin
ssock:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
fillchar(addr,sizeof(addr),0);
addr.sin_family:=AF_INET;
addr.sin_addr.s_addr:=inet_addr(Pchar(destination));
addr.sin_port:=htons(port);
nonblock:=1;
ioctlsocket(ssock, FIONBIO, nonblock);
connect(SSOCK,addr,sizeof(addr));
FD_ZERO(FDSet);
FD_SET(ssock,FDSet);
timeo.tv_sec:=scan_timeout div 1000;
timeo.tv_usec:=scan_timeout mod 1000;
if select(0,nil,@fdset,nil,@timeo)<>0 then synchronize(ok_adres);
closesocket(ssock);
end;

end.

⌨️ 快捷键说明

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