Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Вниз

Пинг нескольких компов одновременно   Найти похожие ветки 

 
Script   (2006-10-02 15:53) [0]

Надо чтоб компы пропинговалиьс как можно быстрее, а до каждого компа время пинга может достигать 2 с.
Своим скудным разумом решил использовать мнгопоточность. Т.к. использовал сие впервые. Возможно ошибся где-то так что вам станет смешно :(

TPingThread = class(TThread)
 private
  PingNum:integer;
 public
   constructor Create(Num:Integer);
   procedure Execute; override;
 end;

Создаю по числу машин в сети
for i:=1 to CompsCount do ICMParray[i]:=TIdIcmpClient.Create(Form2);
Создаю список для потоков
 ThreadList := TList.Create;
По нажатию кнопки на форме создаю потоки
 for i:=1 to CompsCount do ThreadList.Add(TPingThread.Create(i));
Жду 10 сек
Sleep(10000)
И начинаю выводить результаты
for i:=1 to 200 do Memo1.Lines.Add(results[i]);

У потока методы
constructor TPingThread.Create(Num:integer);
begin
 PingNum:=Num;
 inherited Create(False);
end;
procedure TPingThread.Execute;
begin
 FreeOnTerminate := True;
 while not (Terminated or Application.Terminated) do
 begin
  ICMPar[PingNum].Host:=ipadr[PingNum];
  ICMPar[PingNum].ReceiveTimeout:=2000;
  ICMPar[PingNum].Ping;
  if ICMPar[PingNum].ReplyStatus.TimeToLive > 0 then
   result[PingNum]:="пингуется" //массив строк с результатами пингования
  else
   result[PingNum]:="не пингуется";
  Terminate;
  WaitFor;
 end;
end;
В итоге у меня все компы всегда пингуются :-(
Причем заметил такую штуку Host и ReplyStatus.FromIpAddress отличаются постоянно. Такое ощущение что где-то что-то не успевает отработать. Вобщем помогите ламеру кто чем сможет.


 
Ketmar ©   (2006-10-02 15:56) [1]

а) всё неправильно %-)
б) а разве icmp из индейцев не асинхронная? (тут не уверен -- не юзаю индейцев %-)


 
Script   (2006-10-02 15:58) [2]

А как правильно? По примеру из инета делал.


 
Ketmar ©   (2006-10-02 16:14) [3]

правильно -- сначала почитать какую-нибудь теорию. потому что как иначе я поясню, что неверно? всё. %-)


 
Сергей М. ©   (2006-10-02 16:22) [4]


> Жду 10 сек


10 секунд - цифирь эта взята от балды, я так понимаю ..


 
Script   (2006-10-02 16:31) [5]

Ну да. Вобще т.к. ReceiveTimeout:=2000 то больше 2-х сек не имеет смысла ждать. Но дело-то не в этом.


 
Script   (2006-10-02 16:33) [6]

2 Ketmar, я тут по последним темам прошелся. Ты вобще реально чем-то помочь можешь? От тебя кроме "читай доки", "ищи в google", "ошибка в DNA" ничего нет.


 
Сергей М. ©   (2006-10-02 16:36) [7]


> Вобще т.к. ReceiveTimeout:=2000 то больше 2-х сек не имеет
> смысла ждать


Ждать следует ззавершения всех запущенных тобой потоков !


 
Script   (2006-10-02 16:42) [8]

Terminate;
 WaitFor;

Насколько я понимаю поток прибивается сразу после того как один раз отработает.


 
Ketmar ©   (2006-10-02 17:00) [9]

>[6] Script 2-Oct-2006, 16:33
>кроме "читай доки", "ищи в google", "ошибка в
>DNA" ничего нет.
sapienti sat. я неоднократно упоминал, что учу думать. сиречь, использовать мозг. а пережёваной пищей пусть другие кормят.


 
Script   (2006-10-02 17:36) [10]

У Вас весьма интересный метод учить думать г-н Ketmar. Если Вас так же учили с детства - сочустую.


 
Ketmar ©   (2006-10-02 17:39) [11]

угу. именно так. давали направление, и говорили: дальше -- сам. не жалею. более того -- благодарен. а если кого учили думать, давая готовые решения... так и рождаются "батонокидатели".


 
Сергей М. ©   (2006-10-04 09:00) [12]


> Script   (02.10.06 16:42) [8]
> Насколько я понимаю поток прибивается сразу после того как
> один раз отработает.


Правильно понимаешь.

А вот по поводу ожидания потоком собственного завершения (WaitFor) ты понимаешь неправильно.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1171959306
vitv
2007-02-20 11:15
2007.03.11
DBGrid11CellClick(Column: TColumn);-вопрос реализации


15-1171369841
DrDe
2007-02-13 15:30
2007.03.11
ICQ


15-1171217459
Samarik
2007-02-11 21:10
2007.03.11
Мой собственный сайт по разработке игр


15-1171652440
Чародей
2007-02-16 22:00
2007.03.11
icq


1-1168973594
anton773@yandex.ru
2007-01-16 21:53
2007.03.11
richtextbox и url





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский