Вверх ↑
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
#1: 2008-08-08 18:06:22 ЛС | профиль | цитата
Уважаемые коллеги! Хотелось бы раз и навсегда разобраться с компонентом и наконец то получить желаемую функциональность. Суть претензий к данному компоненту в следующем - когда host не пингуется, то компонент вешает всё приложение на 2-3 секунды. В итоге получается что: когда есть связь, приложение работает великолепно, отличная реакция, время, ну все хорошо. Когда связи нет - приложение висит. На этом компоненте я фактически не могу строить ничего связанного с проверкой хостов, т.к. неработающее приложение=мертвое приложение.

Да, есть приложения не требующие ежесекундного пинга. Я например сервера могу так пинговать. Но какое нибудь оборудование - нет.

Вопрос: что делать?

Код для проверки:
code_2265.txt
карма: 0

0
файлы: 1code_2265.txt [1.4KB] [392]
Ответов: 3851
Рейтинг: 159
#2: 2008-08-08 18:11:03 ЛС | профиль | цитата
А если после кнопки
Add(Thread,16040777,154,91)
{
Delay=100
FastStop=0
}
поставить?
карма: 0
начавший
0
Ответов: 689
Рейтинг: 20
#3: 2008-08-08 18:23:18 ЛС | профиль | цитата
Это поможет конечно, где же Вы раньше были.
Но хочется нормального пинга. Вот программа - пингует как самолет. Одно плохо, свой алгоритм не могу построить...
карма: 0

0
Ответов: 3851
Рейтинг: 159
#4: 2008-08-08 18:38:52 ЛС | профиль | цитата
А если в нескольких потоках code_9661.txt запустить, винда такое съест?
карма: 0
начавший
0
файлы: 1code_9661.txt [517B] [301]
Ответов: 689
Рейтинг: 20
#5: 2008-08-08 18:49:03 ЛС | профиль | цитата
А что это даст? Что дает поток: приложение не виснет. Да, проблема решена. Здесь согласен. Не догадался, уперся в стену, полностью с Вами Андрей согласен. Использование потока дает нормальную работу приложения.

Но! Время от это не изменилось. Я пингую некий непонятный хост и получаю ответ через 3 секунды (!!), а стандарным пингом я получаю ответ сразу же (при разрыве). Необходимости в 3 секундах понимания того, что хоста нет - я не вижу. По крайней мере этим временем можно управлять. Допустим сеть меня хорошая, и я знаю, что если хост не пингуется - значит он выключен, а не огромный трафик, узкий канал или обрывы связи.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#6: 2008-08-08 19:15:09 ЛС | профиль | цитата
можно попробовать парсить ответы от стандартного ping.exe, на мой взгляд будет более функциональней если оперировать ещё и ключами

code_9663.txt
------------ Дoбавленo:

справка по командам:


#sha
PingС помощью отправки сообщений с эхо-запросом по протоколу ICMP проверяет соединение на уровне протокола IP с другим компьютером, поддерживающим TCP/IP. После каждой передачи выводится соответствующее сообщение с эхо-ответом. Ping - это основная TCP/IP-команда, используемая для устранения неполадки в соединении, проверки возможности доступа и разрешения имен. Команда ping, запущенная без параметров, выводит справку.

Синтаксис
ping [-t] [-a] [-n счетчик] [-l размер] [-f] [-i TTL] [-v тип] [-r счетчик] [-s счетчик] [{-j список_узлов | -k список_узлов}] [-w интервал] [имя_конечного_компьютера]

Параметры
-t
Задает для команды ping отправку сообщений с эхо-запросом к точке назначения до тех пор, пока команда не будет прервана. Для прерывания команды и вывода статистики нажмите комбинацию CTRL-BREAK. Для прерывания команды ping и выйхода из нее нажмите клавиши CTRL-C.
-a
Задает разрешение обратного имени по IP-адресу назначения. В случае успешного выполнения выводится имя соответствующего узла.
-n счетчик
Задает число отправляемых сообщений с эхо-запросом. По умолчанию — 4.
-l размер
Задает длину (в байтах) поля данных в отправленных сообщениях с эхо-запросом. По умолчанию — 32 байта. Максимальный размер — 65527.
-f
Задает отправку сообщений с эхо-запросом с флагом «Don't Fragment» в IP-заголовке, установленном на 1. Сообщения с эхо-запросом не фрагментируются маршрутизаторами на пути к месту назначения. Этот параметр полезен для устранения проблем, возникающих с максимальным блоком данных для канала (Maximum Transmission Unit).
-i TTL
Задает значение поля TTL в IP-заголовке для отправляемых сообщений с эхо-запросом. По умолчанию берется значение TTL, заданное по умолчанию для узла. Для узлов Windows XP это значение обычно равно 128. Максимальное значение TTL — 255.
-v тип
Задает значение поля типа службы (TOS) в IP-заголовке для отправляемых сообщений с эхо-запросом. По умолчанию это значение равно 0. тип — это десятичное значение от 0 до 255.
-r счетчик
Задает параметр записи маршрута (Record Route) в IP-заголовке для записи пути, по которому проходит сообщение с эхо-запросом и соответствующее ему сообщение с эхо-ответом. Каждый переход в пути использует параметр записи маршрута. По возможности значение счетчика задается равным или большим, чем количество переходов между источником и местом назначения. Параметр счетчик имеет значение от 1 до 9.
-s счетчик
Указывает вариант штампа времени Интернета (Internet Timestamp) в заголовке IP для записи времени прибытия сообщения с эхо-запросом и соответствующего ему сообщения с эхо-ответом для каждого перехода. Параметр счетчик имеет значение от 1 до 4.
-j список_узлов
Указывает для сообщений с эхо-запросом использование параметра свободной маршрутизации в IP-заголовке с набором промежуточных точек назначения, указанным в списке_узлов. При свободной маршрутизации последовательные промежуточные точки назначения могут быть разделены одним или несколькими маршрутизаторами. Максимальное число адресов или имен в списке узлов — 9. Список узлов — это набор IP-адресов (в точечно-десятичной нотации), разделенных пробелами.
-k список_узлов
Указывает для сообщений с эхо-запросом использование параметра строгой маршрутизации в IP-заголовке с набором промежуточных точек назначения, указанным в списке_узлов. При строгой маршрутизации следующая промежуточная точка назначения должна быть доступной напрямую (она должна быть соседней в интерфейсе маршрутизатора). Максимальное число адресов или имен в списке узлов равно 9. Список узлов — это набор IP-адресов (в точечно-десятичной нотации), разделенных пробелами.
-w интервал
Определяет в миллисекундах время ожидания получения сообщения с эхо-ответом, которое соответствует сообщению с эхо-запросом. Если сообщение с эхо-ответом не получено в пределах заданного интервала, то выдается сообщение об ошибке "Request timed out". Интервал по умолчанию равен 4000 (4 секунды).
имя_конечного_компьютера
Задает точку назначения, идентифицированную IP-адресом или именем узла.
/?
Отображает справку в командной строке.
Примечания
Команда ping позволяет проверить имя и IP-адрес компьютера. Если проверка IP-адреса успешная, и проверка имени — нет, то имеет место проблема разрешения имен. В этом случае с помощью запросов DNS (Domain Name System) или с помощью методов разрешения имен NetBIOS проверьте, чтобы имя задаваемого компьютера было разрешено в локальном файле Hosts.
Эта команда доступна только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).
Примеры
Приведенный ниже пример содержит результаты работы команды ping:

C:\>ping example.microsoft.com

Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

Reply from 192.168.239.132: bytes=32 time=100ms TTL=124

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

Reply from 192.168.239.132: bytes=32 time=101ms TTL=124

Для отправки сообщения точке назначения 10.0.99.221 и сопоставления с ее узловым именем введите:

ping -a 10.0.99.221

Для отправки точке назначения 10.0.99.221 десяти собщений с эхо-запросом, каждое из которых имеет поле данных из 1000 байт, введите:

ping -n 10 -l 1000 10.0.99.221

Для отправки сообщения точке назначения 10.0.99.221 и записи маршрута для 4 переходов введите:

ping -r 4 10.0.99.221

Для отправки сообщения точке назначения 10.0.99.221 и задания свободной маршрутизации для точек назначения 10.12.0.1-10.29.3.1-10.1.44.1 введите:

ping -j 10.12.0.1 10.29.3.1 10.1.44.1 10.0.99.221


карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_9663.txt [721B] [390]
Ответов: 689
Рейтинг: 20
#7: 2008-08-08 19:20:41 ЛС | профиль | цитата
это как раз и обидно, что приходится писать на hiasme не его компонентами, а парсить что-то из виндов, использовать ODBC и т.д. Да... В стандартном пинге есть свои недостатки...
карма: 0

0
Ответов: 5227
Рейтинг: 587
#8: 2008-08-08 19:24:05 ЛС | профиль | цитата
oldTV, ты код-то посмотри, что там сложного, всё стандартно
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 689
Рейтинг: 20
#9: 2008-08-08 19:37:55 ЛС | профиль | цитата
andrestudio, нет, это для меня сложно. Я не Delphist, программист в этой части слабый. Многое мне не понятно.

Если Вы по поводу "парсить", то это возможно, но как то не хочется. Проблем с точки зрения "парсить" не вижу.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#10: 2008-08-08 19:57:37 ЛС | профиль | цитата
oldTV, какое к чёрту программирование (я сам в нём деревянный), вот тебе ещё код для размышления

code_9664.txt

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_9664.txt [855B] [370]
Ответов: 3851
Рейтинг: 159
#11: 2008-08-08 20:22:11 ЛС | профиль | цитата
andrestudio, закинь схему в публикатор
карма: 0
начавший
0
Ответов: 689
Рейтинг: 20
#12: 2008-08-08 20:26:48 ЛС | профиль | цитата
Я выше написал отношение к такому предложению: да, оно подойдет, но как то неправильно использовать это.

Зачем тогда компонент ping создавался? Получается он нормально не работает? Такое практически всегда получается: компонент перестает работать, люди пишут на форум, мол не удобно, или не работает, а форум, сообщество отвечает: да, не работает, а ты вот так попробуй. Вопрошающий пробует и остается довольным подсказкой сообщества. Я по сути дела решил сейчас проблему скорости и зависания через Ваши, andrestudio и Ваши Андрей. подсказки. Но проблема то не решена. Она просто обогнута стороной. Завтра некто Василий, или Дмитрий, или на худой конец какой нибудь Петр коснется этой же проблемы и получит: читай форум, это делается вот так. А ведь не должно по большей части. Не должно. Еще может быть другое: важность. Автор компонента видит проблему, но ставит ее не важной в когорте других. Отсюда и бяда...

В любом случае всем спасибо. Если дисскусия продолжится в русле усовершенствования компонента - буду рад и благодарен. Андреям спасибо большое. Вы сделали мой вечер сегодня.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#13: 2008-08-08 20:44:03 ЛС | профиль | цитата
oldTV, я ведь незря предложил справку по командной строке, нужно просто было вспомнить про WinExec и включить воображение , Андрей., у меня старая версия 3.67 публикатора нет, вот Вам тогда ложка дегтя в бочку с мёдом: на уровне пользователя в системе Windows Вы должны быть не с ограниченными правами.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 3655
Рейтинг: 69
#14: 2008-08-08 21:44:01 ЛС | профиль | цитата
oldTV писал(а):
Зачем тогда компонент ping создавался

Если он тебе не нравится - не пользуйся.
Сделай свой который тебе понравится.

карма: 0

0
Ответов: 3851
Рейтинг: 159
#15: 2008-08-08 21:53:44 ЛС | профиль | цитата
oldTV писал(а):
Но проблема то не решена
Э, ну - ДА - не решена. Ты ещё не привык что-ли? Я тоже стараюсь для общей пользы и тоже бывает "не решена" (например вот http://www.hiasm.com/forum.html?q=3&t=18677, или вот http://www.hiasm.com/forum.html?q=3&t=12088 - уже две версии сменились), а что делать - проект бесплатный - свои преимущества, свои неудобства..

andrestudio писал(а):
должны быть не с ограниченными правами
В смысле с правами админа - это тоже отметить нада.
andrestudio писал(а):
у меня старая версия 3.67 публикатора нет
Э, у меня, как выяснилось - тоже, хотя у меня"Текущая версия: HiAsm 3.66 build 169", правда без обновлений, ибо напугал меня Dilma (http://www.hiasm.com/forum.html?q=3&p=90592#p90592)

Не будем печалиться - надейся и жди..
карма: 0
начавший
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)