Witam!
Chcialbym posprawdzać dany przedział ip: 127.0.0.(1-255) w poszukiwaniu aktywnych serwerów. Robię to tak, że próbuję połączyć się ze wszystkimi nr. IP z danego przedziału i jeżeli mi się uda to oznacza że pod danym ip znajduje się aktywny serwer. Teraz podczas sprawdzania wyskakują mi błędy:
-Socket error 10049 - Cannot assign requested address
-Socket error 10061 - Connection refused
Jak zrobić aby nie pokazywały się??
Napisałem taki oto kod, ktory wykonuje się po kliknięciu na button:
sprawdzam=true; //zmienna globalna
for(int i=1;i<15;i++)//usawiłem przedział od 1-15 bo męczące jest jak wyskakuje mi 255 błędów o braku możliwości połączenia
{
Application->ProcessMessages();
Client->Address="127.0.0"+IntToStr(i);//Komponent TSocketClient
Sleep(100);
try
{
Client->Active=true;
Sleep(10);
Client->Active=false;
}
catch(ESocketError &e)
{
Client->Active=false;
}
}
sprawdzam=false;
A przy podłączeniu:
void __fastcall TMainForm::ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
if(sprawdzam && Socket->RemoteHost!="")//jeżeli program tylko sprawdza aktywność serwerów
{
ListaSerwerow->Items->Add(Socket->RemoteAddress+"|"+Socket->RemoteHost);//TListBox
Client->Active=false;
}
}