Как диагностировать наличие Инета
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Как диагностировать наличие Инета
В задаче на С6.3 реализована отправка сообщения на конкретный e-mail с использованием Blat_Send.
Вопрос, как проще диагностировать перед отправкой наличие действующего подключения к интернету,
чтобы не просто получить ошибку отправки, а сообщить клиенту ( ну вот такой контингент), что
неплохо бы было подключиться к сети.
Первая мысль отправить ping на известный адрес.
Вопрос, как проще диагностировать перед отправкой наличие действующего подключения к интернету,
чтобы не просто получить ошибку отправки, а сообщить клиенту ( ну вот такой контингент), что
неплохо бы было подключиться к сети.
Первая мысль отправить ping на известный адрес.
- Admin
- Администратор
- Сообщения: 3962
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 27 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Как диагностировать наличие Инета
Вторая: получить файл по известному адресу.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: Как диагностировать наличие Инета
Может я не по русски объясняю, не знаю конечно.
Какой файл получить???
Прога стоит у клиентов, и отправляют сообщения тоже они - мне. Их много и почти все владеют компьютером на начальном уровне.
Поэтому в тех случаях, когда инет на машине просто выключен, надо так прямо им об этом сообщать. Иначе будут звонить и
спрашивать и весь смысл затеи теряется.
Blat_send выдает, конечно коды ошибок, но там на один код несколько разных вариантов ошибки.
Какой файл получить???
Прога стоит у клиентов, и отправляют сообщения тоже они - мне. Их много и почти все владеют компьютером на начальном уровне.
Поэтому в тех случаях, когда инет на машине просто выключен, надо так прямо им об этом сообщать. Иначе будут звонить и
спрашивать и весь смысл затеи теряется.
Blat_send выдает, конечно коды ошибок, но там на один код несколько разных вариантов ошибки.
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
Re: Как диагностировать наличие Инета
Отключите интернет и попробуйте зайти на какой-нибудь сайт, IE вам посоветует сперва проверить правильность введённого url. Так что я бы на Вашем месте не парился и при получении любой ошибки от Blat_send выводил окошко с текстом, первой строкой которой красным цветом жирно и крупно написал "Сперва убедитесь в наличии соединения", а потом другие возможные причины ошибки.
С уважением, ДП
-
- Старожил
- Сообщения: 203
- Зарегистрирован: 25 Октябрь 2005, 6:22
- Откуда: Северск
- Контактная информация:
Re: Как диагностировать наличие Инета
За это отвечает ф-ии InternetGetConnectedState() из wininet.dll или InetIsOffLine() из url.dll
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
Re: Как диагностировать наличие Инета
Здесь нужно определится, что Вам нужно: наличие Internet (трансляции IP пакетов) как таковое или возможность отправить сообщение.
Как говорят в Одессе "это две большие разницы". Например у меня в локальной сети предприятия настроен собственный Intranet и свой почтовый сервер.
При этом то, что Вы называете "Internet" в этой сети нет, а вот почтовый сервер (SMTP / POP3 . IMAP ) работает прекрасно из всех программ ...
Вам нужно просто проверять наличие доступа к ресурсу к которому Вы обращаетсь для передачи сообщения (почтовому серверу).
Это можно сделать либо через PING, либо если хочется красиво - то через функции Catalyst SocketTools или WinAPI.
Если совсем все плохо - то на крайний случай просто тупо отрабатывать наличие ошибки по факту передачи сообщения (как это уже рекомендовали ниже).
Как говорят в Одессе "это две большие разницы". Например у меня в локальной сети предприятия настроен собственный Intranet и свой почтовый сервер.
При этом то, что Вы называете "Internet" в этой сети нет, а вот почтовый сервер (SMTP / POP3 . IMAP ) работает прекрасно из всех программ ...
Вам нужно просто проверять наличие доступа к ресурсу к которому Вы обращаетсь для передачи сообщения (почтовому серверу).
Это можно сделать либо через PING, либо если хочется красиво - то через функции Catalyst SocketTools или WinAPI.
Если совсем все плохо - то на крайний случай просто тупо отрабатывать наличие ошибки по факту передачи сообщения (как это уже рекомендовали ниже).
За теми кто отстал - не возвращаться. (С) Кодекс