Форум: "Сети";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизСканер портов Найти похожие ветки
← →
Ghost_ (2003-03-03 14:28) [0]Какой наиболее оптимальный вариант решения этой задачи?
← →
Карелин Артем (2003-03-03 15:14) [1]Ну типа того:
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
ss:TFileStream;
begin
for i:=SpinEdit1.Value to SpinEdit2.Value do
begin
try
Caption:=IntToStr(i);
Powersock1.Host:="192.168.***.***";
ClientSocket1.Port:=i;
Application.ProcessMessages;
ClientSocket1.Open;
finally
ClientSocket1.Close;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(IntToStr(ClientSocket1.Port));
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;
← →
Ghost_ (2003-03-03 15:31) [2]Это почему-то работает если на одном компьютере разные порты сканировать, а если один и тотже но на разных почему-то нет..
← →
Карелин Артем (2003-03-03 16:01) [3]ClientSocket1.Address:="192.168.14."+IntToStr(i); - а у меня работает...
← →
Ghost_ (2003-03-03 16:04) [4]А у меня почемуто неть
← →
Карелин Артем (2003-03-03 16:21) [5]А что говорит? Звезды из адреса убрал? С бубном побегал? Белую дискету в полнолуние под коврик положил?
← →
Ghost_ (2003-03-03 16:23) [6]Если вставить строчку sleep(10);
то работает но выдает полный бред..у меня открытф порты на
1, 3,4,11,15
а результат
3,6,13,17
что бы это значило?
← →
Карелин Артем (2003-03-03 16:33) [7]Ничем помочь не могу. У меня все работает. Даже правильно. Хотя неплохо бы было сменить тип клиента на ctBlocking - может будет работать без дремоты.
← →
Ghost_ (2003-03-03 17:06) [8]Вообще не работает..
← →
Ghost_ (2003-03-04 08:32) [9]Может кто знает почему она выдает сообщение о коннекте через два?
← →
Programist (2003-03-04 10:35) [10]Потому-что кто-то цикл криво крутит.
← →
Ghost_ (2003-03-04 11:43) [11]И хто бы это мог быть! -подумал Винипух...
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
for i:=1 to 30 do
begin
try
Powersock1.Active:=false;
//Powersock1.ClientType:=ctBlocking;
Powersock1.Port:=4899;
Powersock1.Host:="10.10.1."+IntToStr(i);
Application.ProcessMessages;
Powersock1.Open;
Caption:=IntToStr(i);
finally
Powersock1.Close;
sleep(50);
end;
end;
end;
вот он есть кривой цикл..
← →
Digitman (2003-03-04 12:00) [12]
> Карелин Артем
> У меня все работает. Даже правильно
при подразумеваемом ClientType = ctNonBlocking
не может это работать ! тем более - правильно !
1.
try
Caption:=IntToStr(i);
Powersock1.Host:="192.168.***.***";
ClientSocket1.Port:=i;
Application.ProcessMessages;
ClientSocket1.Open; // вот запустил механизм коннекта
finally
ClientSocket1.Close; // и тут же, не дождавшись асинхр.нотификации о результатах, остановил механизм !!
end;
end;
2.
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
Socket.Close; //!!!!!!!!!!!!
end;
← →
Карелин Артем (2003-03-04 12:23) [13]>>при подразумеваемом ClientType = ctNonBlocking
А у меня он не подразумеваемый, а блокируемый.
← →
Ghost_ (2003-03-04 12:34) [14]Может у меня клиент сокет кривой?
← →
Digitman (2003-03-04 12:39) [15]
> Карелин Артем
> у меня он не подразумеваемый, а блокируемый
В таком случае обработка OnError() совершенно никчему - это событие просто не возникнет.
И вот это (см. жирным)
try
..
ClientSocket1.Open;
..
finally
ClientSocket1.Close;
end;
совершенно никчему.
более того, нужно "гасить" исключение в блоке except..end, ибо цикл по i будет прерван в результате первого же искл-я, говорящего о факте неактивности очер.сканируемого порта
← →
Карелин Артем (2003-03-04 12:45) [16]procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
for i:=SpinEdit1.Value to SpinEdit2.Value do
begin
try
Caption:=IntToStr(i);
ClientSocket1.Port:=i;
Application.ProcessMessages;
ClientSocket1.Open;
ClientSocket1.Close;
except
ClientSocket1.Close;
end;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(IntToStr(ClientSocket1.Port));
end;
← →
Digitman (2003-03-04 12:52) [17]тогда уж вот так :
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
for i:=SpinEdit1.Value to SpinEdit2.Value do
begin
try
Caption:=IntToStr(i);
ClientSocket1.Port:=i;
Application.ProcessMessages;
ClientSocket1.Open;
Memo1.Lines.Add("Port " + IntToStr(ClientSocket1.Port) + "is active");
ClientSocket1.Close;
except
Memo1.Lines.Add("Port " + IntToStr(ClientSocket1.Port) + "is not active");
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c