Здравствуйте!
Я вот хочу пропингать все компьютеры в заданном диапазоне адресов.
Для этого я использую функции из ICMP.DLL:
IcmpCreateFile()
IcmpSendEcho()
IcmpCloseHandle()
Но дело в том, что если комп какой-то выключен, то IcmpSendEcho() долго молчит (несколько секунд), и есстественно если у меня больой диапазон адресов, то многие компы выключены и в итоге пинг всех компов занимает долгое время.
Вопрос такой: как можно уменьшить это время (какие может быть есть идеи) ?
или может быть подскажите другой способ пингования компа.
Заранее спасибо БОЛЬШОЕ!
С уважением, Ольга.
Может быть подскажите какие функции мне смотреть?
Отправлен: 03.02.2005, 04:12
Вопрос задала: rolechka (статус: Читатель)
Всего ответов отправлено: 3
Отвечает: DSota
Здравствуйте, rolechka!
Последний параметр при вызове функции IcmpSendEcho(...,TimeOut) и есть время ожидания в миллисекундах, подставь вместо TimeOut 500 - он и будет ожидать пол секунды. А лучше пинговать несколько машин одновременно, и каждый пинг запускать в своем отдельном процессе.
Ответ отправил: DSota (статус: Студент)
Отправлен: 03.02.2005, 11:14
Отвечает: vitya
Здравствуйте, rolechka!
1. можно делать в нескольких потоках
2. последний параметр позволяет SendEcho позволяет задать сколько ждать функции
Ответ отправил: vitya (статус: Профессор)
Отправлен: 03.02.2005, 11:27
Отвечает: Tigran K. Kalaidjian
Здравствуйте, rolechka!
1. В IcmpSendEcho() 8-й параметр как раз отвечает за время - его и менять.
2. Можно создать несколько потоков и не думать о времени - в некоторых случаях это бывает эффективнее 1-го варианта.
Ответ отправил: Tigran K. Kalaidjian (статус: Профессионал)
Отправлен: 03.02.2005, 21:01