Страница 1 из 1
					
				Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 11:25
				 dik1970
				В задаче на С6.3 реализована отправка сообщения на конкретный e-mail с использованием Blat_Send.
  Вопрос, как проще диагностировать перед отправкой наличие действующего подключения к интернету,
чтобы не просто получить ошибку отправки, а сообщить клиенту ( ну вот такой контингент), что
неплохо бы было подключиться к сети.
 Первая мысль отправить  ping на известный адрес.
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 13:03
				 Admin
				Вторая: получить файл по известному адресу.
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 14:07
				 Дед Пахом
				Третья: послать клиента по известному адресу.
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 18:40
				 dik1970
				Может я не по русски объясняю, не знаю конечно.
 Какой файл получить???
 Прога стоит у клиентов, и отправляют сообщения тоже они -  мне. Их много и почти все владеют компьютером на начальном уровне.
Поэтому в тех случаях, когда инет на машине просто выключен, надо так прямо им об этом сообщать. Иначе будут звонить и
спрашивать и весь смысл затеи теряется.
Blat_send выдает, конечно коды ошибок, но там на один код несколько разных вариантов ошибки.
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 21:22
				 Дед Пахом
				Отключите интернет и попробуйте зайти на какой-нибудь сайт, IE вам посоветует сперва проверить правильность введённого url. Так что я бы на Вашем месте не парился и при получении любой ошибки от Blat_send выводил окошко с текстом, первой строкой которой красным цветом жирно и крупно написал "Сперва убедитесь в наличии соединения", а потом другие возможные причины ошибки.
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 28 Декабрь 2010, 22:30
				 dik1970
				Спасибо, скорее всего так и поступлю
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 29 Декабрь 2010, 13:42
				 AlexPet
				За это отвечает ф-ии InternetGetConnectedState() из wininet.dll или InetIsOffLine() из url.dll
			 
			
					
				Re: Как диагностировать наличие Инета
				Добавлено: 30 Декабрь 2010, 9:04
				 Игорь Столяров
				Здесь нужно определится, что Вам нужно: наличие Internet (трансляции IP пакетов) как таковое или возможность отправить сообщение.
Как говорят в Одессе "это две большие разницы". Например у меня в локальной сети предприятия настроен собственный Intranet и свой почтовый сервер. 
При этом то, что Вы называете "Internet" в этой сети нет, а вот почтовый сервер (SMTP / POP3 . IMAP ) работает прекрасно из всех программ ...
Вам нужно просто проверять наличие доступа к ресурсу к которому Вы обращаетсь для передачи сообщения (почтовому серверу).
Это можно сделать либо через PING, либо если хочется красиво - то через функции Catalyst SocketTools или WinAPI.
Если совсем все плохо - то на крайний случай просто тупо отрабатывать наличие ошибки по факту передачи сообщения (как это уже рекомендовали ниже).