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

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

быстрый ping [D7, Win2k]


veresk ©   (2003-10-25 14:56:00) 

Здравстуйте мастера.
на сколько я знаю, пинговать можно с помощью IcmpSendEcho,
отправляя запрос отдельно взятому компу.
а как можно отправить запрос всем, а потом разгребать какой- нибудь буффер?
многопоточный вариант пробовал(каждому компу - запрос в отдельном потоке)- не понравилось.

заранее благодарен.


All   (2003-10-29 08:52:00) [1]

Посмотри по этой ссылочке, правда на Builder`e, но какая разница, юзается то WIN API.

http://borland.xportal.ru/forum/viewtopic.php?t=7012


Дмитрий В. Белькевич   (2003-10-26 20:52:00) [2]

Шли широковещательный udp пакет, или несколько, и жди ответы от серверов. Это, конечно, не пинг, но рабоает. Тот же Counter Strike или Quake именно так и делает.

Вот код на отсылку, не тестил, правда:

> Как средствами дельфи послать субж?
Ручками батенька...
procedure TMainForm.FormCreate(Sender: TObject);
Var Init:TWSAData; SockOpt:BOOL; Sock:TSocket; Target:TSockAddrIn;
begin WSAStartup($101,Init); Sock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP); SockOpt:=TRUE;
SetSockOpt(Sock,SOL_SOCKET,SO_BROADCAST,PChar(@SockOpt),SizeOf(SockOpt)); Target.sin_port:=htons(8167);//номер порта Target.sin_addr.S_addr:=INADDR_BROADCAST; Target.sa_family:=AF_INET; SendTo(Sock,Data,DataBytes,0,Target,SizeOf(Target)); WSACleanup;
end;


Anatoly Podgoretsky   (2003-10-25 15:00:00) [3]

Никаких широкофвещательных пингов не существует, придется все таки к каждому узлу обращаться отдельно.


Наверх

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