Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Нужно сделать ping на Delphi [D7, WinXP]


apic   (26.06.18 11:41

Всем доброго времени суток! Задача избитая, но полноценного решения не нашел. Нужно сделать ping на Delphi. Нашел вроде хороший пример http://www.delphimaster.ru/articles/icmp.html , но не хватает мозгов как сделать, что бы размер буффера можно бло указывать произвольно? Не хватает мозгов переделать на динамический массив буффера данных. Кроме того хотелось бы услышать мнение по правильности этого кода, есть мнение, что этот код может вызывать утечки памяти... И еще интересно - в Delphi XE случайно не сделали "обертку" под использование функций из ICMP.DLL?


megavoid ©   (26.06.18 12:49[1]

Именно на дельфи принципиально? В других языках можно сделать подключением библиотеки в одну-две строчки.
https://github.com/geerlingguy/Ping


apic   (26.06.18 13:50[2]

Да, мне нужно н Делфи. В общем вместо
pingBuffer : array [0..31] of AnsiChar;
я написал
pingBuffer : array of AnsiChar;
Потом инициализирую переменную
SetLength(pingBuffer, 1452);
и заменил везде
sizeof(pingBuffer)
на
Length(pingBuffer)
Адрес массива передаю также:
pIpe.Data := @pingBuffer;
Вроде все работает, но вопрос - правильно ли я все сделал? Больше всего волнует вопрос: передача адреса на статический и динамический массив одинаково выполняется в Делфи? Я имею ввиду синтаксически...


RWolf ©   (26.06.18 14:48[3]

Неодинаково.
@StaticArr = @StaticArr[0] — указатель на первый элемент
@DynArr[0] — указатель на первый элемент
@DynArr — указатель на указатель на первый элемент


apic   (26.06.18 15:08[4]

Спасибо! Подправил


apic   (05.07.18 07:04[5]

Люди добрые а как переделать этот пример http://www.delphimaster.ru/articles/icmp.html что бы добавить поддержку IPv6?


megavoid ©   (06.07.18 10:01[6]

Icmp6CreateFile, Icmp6SendEcho2, Icmp6ParseReplies
https://docs.microsoft.com/en-us/windows/desktop/api/icmpapi/nf-icmpapi-icmp6createfile


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо