Вот:
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Memo2: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
type TScanTread = class(TThread) private tcp: TIdTCPClient; protected procedure Execute; override; procedure Sync; public host: string; port: integer; end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TScanTread.Sync; begin Form1.Memo2.Lines.Add('Есть: '+Host); end;
procedure TScanTread.Execute; begin tcp:=TIdTCPClient.Create(Form1); tcp.Host:=Host; tcp.Port:=Port; try tcp.Connect(2000); if tcp.Connected then Synchronize(Sync); finally tcp.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); var i: byte; begin for i:=1 to 254 do with TScanTread.Create(true) do begin Host:='10.10.10.'+IntToStr(i); Port:=21; FreeOnTerminate:=true; Memo1.Lines.Add(Host+' поставлен на скан.'); Resume; end; end;
end.
|
Быстрее не бывает |