Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сканер сети, Программа, которая сканит компы в сети д 
:(
    Опции темы
KaRTmaN
  Дата 29.7.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 29.7.2007

Репутация: нет
Всего: нет



Всем привет! У меня появилась идеянаписать программу, которая бы сканировала бы сеть на какой-нибудь порт, чтобы узнать у кого из сети например запущен сервак кс или ещё какой- нибудь демон. Сначала я писал на простом TCPClient'e, но потом мне сказали, чтобы быстрее сканить - нужно чтобы прога работала с потоками. Вот что я написал.
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Sockets;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    ListBox1: TListBox;
    TcpClient1: TTcpClient;
    procedure Button1Click(Sender: TObject);
    procedure TcpClient1Connect(Sender: TObject);
    procedure TcpClient1Error(Sender: TObject; SocketError: Integer);
    procedure TcpClient1Disconnect(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
TMyThread = class(TThread)
procedure Execute; override;
private
public
end;
var
  Form1: TForm1;
   Thread:TMyThread;
   i:integer;
implementation

{$R *.dfm}

Procedure TMyThread.Execute;
begin
for i:=1 to 254 do
begin
Form1.Label1.Caption:='10.11.1.'+inttostr(i);
Form1.TcpClient1.RemoteHost:='10.11.1.'+inttostr(i);
Form1.TcpClient1.Open;
Form1.TcpClient1.Close;
end;
Self.Terminate;
Exit;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Thread:= TMyThread.Create(False);
Thread.FreeOnTerminate := True;

end;

procedure TForm1.TcpClient1Connect(Sender: TObject);
begin
ListBox1.Items.Add(inttostr(i));
end;

procedure TForm1.TcpClient1Error(Sender: TObject; SocketError: Integer);
begin
TcpClient1.Close;
end;

procedure TForm1.TcpClient1Disconnect(Sender: TObject);
begin
TcpClient1.Close;
end;

end.

Так программа при сканировании уже не виснет, но все - равно сканит каждый отдельный IP очень долго.
Вопрос такой: Как сделать, чтобы новое соединение к новому IP открывалось в новом потоке? И в общем как ускорить его работу?

Это сообщение отредактировал(а) KaRTmaN - 29.7.2007, 13:56
PM MAIL   Вверх
MetalFan
Дата 29.7.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



ужос. почитай, что такое потоки и с чем их едят. удивляюсь, как вообще этот код фунцыклирует


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
ne0n
Дата 29.7.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



Цитата(MetalFan @  29.7.2007,  15:05 Найти цитируемый пост)
почитай, что такое потоки и с чем их едят


Ага, почитай вот тут http://forum.vingrad.ru/forum/topic-60076.html

А вообще быстрее это будет работать если писать будешь на WinSock!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.