Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ping!


and_2 ©   (2003-07-15 08:44:00) 

Здравствуйте мастера, такой вопрос как пингнуть диапазон IP адресов ??? а лучше если это сделать одновременно! то есть послать по одному пакетику каждой машине и все это одновременно.
заранее спасибо


Verg   (2003-07-18 16:20:00) [1]


> то есть послать по одному пакетику каждой машине и все это
> одновременно.


Одновременно? Ух ты!
Среднестатистическая сетевая карта одновременноможет посылать только один пакет - и тут хоть 50 млн. потоков на нее навалятся - ответ один: "В очередь, сукины дети, в очередь!" (C) "Собачье сердце".

Другое дело бродкастовые пакеты - типа один реквест послал - жди тепереь N секунд все респонсы, через N секунд подсчитывай сколь получилось.
В ICMP по-моему нет способа послать широковещательный ECHO_REQUEST, хотя .... можно попробовать.


Gigabyte   (2003-07-18 10:06:00) [2]

Короче напиши мне, я тебе вышлю пример пинга через WinAPI и помогу организовать потоки


Anatoly Podgoretsky   (2003-07-17 23:22:00) [3]

2^N


nikus   (2003-07-17 19:05:00) [4]

Система больше тормозит при создании/высвобождении потоков, чем при выполнении (в данном случае). Предпочтительней, я считаю, ограничиться 50-ю потоками.


Morfein   (2003-07-17 02:41:00) [5]

В данном случае потоков может быть и тысяча, и пять тысяч, и больше, без большой нагрузки на сеть... Потому как каждый поток большее кол-во времени проводит в ожидании ответа на пинг.

>>and_2
ICMP-пакет таки не один байт весит, а 28 + данные...


Anatoly Podgoretsky   (2003-07-16 20:34:00) [6]

and_2 © (16.07.03 16:00)
Зачем же 2500 поток, рациональнее сканировать по сетя класса С, а это всего 256 потоков.


sergey2   (2003-07-16 20:05:00) [7]


> and_2 © (16.07.03 16:00)
> да не!
> допустим 2500 ипов значит 2500 потоков! по 1 пакету, который
> вести 1 байт! эт разве нагррузка ?


А зачем сразу 2500 потоков? Думаешь от этого быстрее будет?


and_2   (2003-07-16 17:15:00) [8]

ну так может кто нить выложит что нибудь ценное по делу?
у мя проблема с кодингом а с теорией все ок!


Fay   (2003-07-16 16:43:00) [9]

>> да не!
>> допустим 2500 ипов значит 2500 потоков! по 1 пакету, который >> вести 1 байт! эт разве нагррузка ?
????????????????


and_2   (2003-07-16 16:00:00) [10]

да не!
допустим 2500 ипов значит 2500 потоков! по 1 пакету, который вести 1 байт! эт разве нагррузка ?


Digitman   (2003-07-16 15:34:00) [11]


> Gigabyte


при чем здесь комп ? если уж на то пошло, кол-во тредов процесса в принципе ограничено !

но ничто не мешает организовать тред-пул


Anatoly Podgoretsky   (2003-07-16 15:31:00) [12]

Известны случаи одновременной работы свыше 10000 потоков. Ты наверно что то не так делал.


Gigabyte   (2003-07-16 15:23:00) [13]

> Digitman
столько потоков, сколько адресов пингуется в дан.момент времени !
Комп может не выдержать. По себе знаю


Digitman   (2003-07-16 10:02:00) [14]


> and_2


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


Gigabyte   (2003-07-15 21:33:00) [15]

Да ладно "синхронно"...
можно и не синхронно...
можно просто организовать массив а потом

For i:=0 to Threads.Count-1 do Threads[i].Resume;

они (Threads) даже не заметят что были запущены несинхронно т.к. будут заняты пингом


and_2   (2003-07-15 17:27:00) [16]

Мне подсказали что надо будет создать пару потоков thread"ов и запустить их синхронно! а как ?


Snap   (2003-07-15 13:41:00) [17]

Eсли так хочется возиться, можно попробовать намутить бродцастовые или мультиадресные пакеты, только так можно добиться настоящей одновременности, но по моему дело того не стоит.


Digitman   (2003-07-15 09:15:00) [18]


> и все это одновременно


для этой цели следует использовать доп.код.потоки, в каждом из которых пингуется отдельный хост (см. IcmpSendEcho)


Наверх

Титульная страница Поиск, карта сайта Написать письмо