R
Ree4
Здравствуйте. пишу сканер портов. Почемуто он выводит все заданные порты, несмотря на то что некоторые из них закрыты.
и во время работы приложение виснет, когда оно заканчивает сканирование, отвисает.
в чём может быть причина?
и во время работы приложение виснет, когда оно заканчивает сканирование, отвисает.
в чём может быть причина?
C++:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void scan()
{
TTreeNode * n;
Form1->ProgressBar1->Max = Form1->Memo1->Lines->Count;
Form1->ProgressBar2->Max = Form1->Memo2->Lines->Count;
for(int ip = 0; ip < Form1->Memo2->Lines->Count; ip++)
{
Form1->UdpSocket1->RemoteHost = Form1->Memo2->Lines->Strings[ip]; //ip udp
Form1->TcpClient1->RemoteHost = Form1->Memo2->Lines->Strings[ip];//ip tcp
n = Form1->TreeView1->Items->Add(Form1->TreeView1->Selected,Form1->Memo2->Lines->Strings[ip]);
for (int i = 0; i < Form1->Memo1->Lines->Count; i++)
{
Form1->UdpSocket1->RemotePort = StrToInt(Form1->Memo1->Lines->Strings[i]);
Form1->TcpClient1->RemotePort = StrToInt(Form1->Memo1->Lines->Strings[i]);
Form1->UdpSocket1->Active = true;
Form1->TcpClient1->Active = true;
if ((Form1->TcpClient1->Connect() && Form1->UdpSocket1->Connect()) || (Form1->TcpClient1->Connect() || Form1->UdpSocket1->Connect()))
{
Form1->TreeView1->Items->AddChild(n,Form1->Memo1->Lines->Strings[i]);
}
Form1->ProgressBar1->StepBy(i);
}
Form1->ProgressBar1->StepBy(ip);
}
Form1->ProgressBar1->StepBy(0);
Form1->ProgressBar2->StepBy(0);
Form1->Memo1->Lines->Clear();
Form1->Memo2->Lines->Clear();
ShowMessage("Сканирование завершено");
}
void stop()
{
Form1->TcpClient1->Active = false;
Form1->UdpSocket1->Active = false;
}
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
stop();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->TreeView1->Items->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
scan();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
scan();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
stop();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Form2 = new TForm2(Application);
Form2->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if(Memo1->Text == "" && Memo2->Text == "")
{
Memo1->Lines->LoadFromFile("port.txt");
Memo2->Lines->LoadFromFile("ip.txt");
}
else
{
ShowMessage("Введите значения в Настройках");
Form2->ShowModal();
}
}
//---------------------------------------------------------------------------