|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Пинг адреса и проверка открытости порта
Суть проблемы такова:
Я пишу плагин для чата, нужно пропинговать определённые адреса и проверить на открытость порта, затем вывести всё в определённый канал, но это всё фигня. Пингую адреса и получается так что весь сервер подвисает в то время пока идёт проверка адресов. Понял что это происходит в этом коде: Код:
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; И так вопрос таков, как можно сделать так что бы этот код не так сильно грузил программу? Или подскажите пожалуйста другой способ проверить адрес и узнать открыт ли порт. Последний раз редактировалось -=Virus=-, 26.02.2011 в 01:25. |