Показать сообщение отдельно
  #1  
Старый 25.02.2011, 18:59
-=Virus=- -=Virus=- вне форума
Прохожий
 
Регистрация: 28.05.2009
Сообщения: 19
Репутация: 10
По умолчанию Пинг адреса и проверка открытости порта

Суть проблемы такова:
Я пишу плагин для чата, нужно пропинговать определённые адреса и проверить на открытость порта, затем вывести всё в определённый канал, но это всё фигня. Пингую адреса и получается так что весь сервер подвисает в то время пока идёт проверка адресов. Понял что это происходит в этом коде:
Код:
procedure TForm1.DCPing();
var
  i:integer;
  s,app:string;
begin
 App := ExtractFilePath( ParamStr(0));
 memo1.Lines.LoadFromFile(app+option+'Privetstvie.txt');
 begin
 for I:=0 to Listbox1.Count-1 do
  begin
   s:=listbox1.items[i];
 try
  IdTCPClient1.Host:=s;
  IdTCPClient1.Port:=411;
  IdTCPClient1.Connect;
   if IdTCPClient1.Connected
    then 
     //подключились
 Memo1.Lines.Add('* '+s+' '+'online');
 IdTCPClient1.Disconnect;
   except
//не подключились
 Memo1.Lines.add('* '+s+' '+'offline');
 end;
 end;
end;

И так вопрос таков, как можно сделать так что бы этот код не так сильно грузил программу? Или подскажите пожалуйста другой способ проверить адрес и узнать открыт ли порт.
Ответить с цитированием