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

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

Как правельно сделать пинг? [D7, XP]


Sunrice ©   (2005-10-13 14:07:00) 

В общем задача такая, нужно что бы программа посылала ICMP-пакеты на сервер, если сервер доступен, передавала значение n'ой переменной - 1, если сервер недоступен - 0.
С ShellAPI(или другим компонентом, выполняющим подобные ф-ции) раньше работать не приходилось, понятия не имею как это возможно осуществить. Подскажите пожалуйсто. Спасибо.


Sunrice   (2005-10-13 22:28:00) [1]

Digitman ©   (13.10.05 16:12) [11] , 2ALL.
Объясните пожалуйсто поэтапно, как пропинговать сервер, до меня никак не доходит =/


Sunrice   (2005-10-13 18:47:00) [2]

Digitman ©   (13.10.05 16:12) [11]
Незнаю сути. Пояснити.
У меня всё сплошь "Undeclared identifier".


Digitman   (2005-10-13 16:12:00) [3]


> Как я это выполню, если консоль? =)


ну а как ты это выполнишь, если, к примеру, "бросить" нужно не какой-то там заумный TIdICMPClient, а обычный "таймер" ? то бишь знакомый до боли TTimer ?

суть-то - одна и та же)


Sunrice   (2005-10-13 15:28:00) [4]

в случае же с TIdICMPClient у тебя в палитре компонентов Делфи должна присутствовать закладка с Инди-компонентами "Indy Clients" .. иначе непонятно, что ты бросал на форму)

> забыл добавить, что приложение консолевое

консолевое оно у тебя будет или неконсолевое - строго по колено)
Как я это выполню, если консоль? =)


Digitman   (2005-10-13 15:25:00) [5]


> В любом случаи.


в каком таком "любом случа и" ?

в случае с ICMPSendEcho() тебе нужно импортировать эту ф-цию из icmp.dll, т.е. прежде чем обращаться к ней ты должен описать ее Паскаль-прототип (см. описание ф-ции в msdn.microsoft.com)

в случае же с TIdICMPClient у тебя в палитре компонентов Делфи должна присутствовать закладка с Инди-компонентами "Indy Clients" .. иначе непонятно, что ты бросал на форму)


> забыл добавить, что приложение консолевое


консолевое оно у тебя будет или неконсолевое - строго по колено)


Sunrice   (2005-10-13 15:09:00) [6]

[Error] Unit1.pas(28): Undeclared identifier: 'ICMPSendEcho'
[Error] Unit1.pas(28): Undeclared identifier: 'TIdICMPClient'

В любом случаи.


Fay   (2005-10-13 14:45:00) [7]

2 Sunrice   (13.10.05 14:33) [6]
Создай новое формоваевое приложение и кинь на Form1.
Посмотри на uses.


Sunrice   (2005-10-13 14:33:00) [8]

Digitman ©   (13.10.05 14:30) [5]
Эм, забыл добавить, что приложение консолевое %)


Digitman   (2005-10-13 14:30:00) [9]

если будешь использовать Indy, то ничего не надо.

ты же не удивляешься, что бросив на форму кнопку тебе не приходится при этом ничего в uses прописывать ?


Sunrice   (2005-10-13 14:28:00) [10]

Digitman ©   (13.10.05 14:26) [3]
Просто я незнаю что нужно в uses прописывать.


Digitman   (2005-10-13 14:26:00) [11]

никакой.
это эксп.ф-ция в составе ICMP.DLL

а если именно компонент интересует, то можно использовать, например, TIdICMPClient (библиотека InDy)


Sunrice   (2005-10-13 14:22:00) [12]

Какой компонент?


Digitman   (2005-10-13 14:18:00) [13]

см. ICMPSendEcho()


Наверх

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