Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
1

Как проверить подключение к Интернет

11.01.2015, 14:05. Показов 1931. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Проверяю подключение так:
(URL= "https://www.google.com")
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
    Public Function qwe(ByVal URL As String) As Boolean
        Dim Request As HttpWebRequest = HttpWebRequest.Create(New Uri(URL))
        Dim Response As HttpWebResponse
        Try
            'Request.Proxy = New WebProxy(proxy)
            Request.UserAgent = "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;"
            Request.Accept = "*/*"
            Response = Request.GetResponse()
            Return True
        Catch
            Return False
            End Try
    End Function
Сеть постоянно есть. Почему иногда результатом работы функции qwe = False?
В чем может быть проблема?

Добавлено через 1 час 51 минуту
Для примера:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Imports System.Net
Public Class Form1
    Dim Th As System.Threading.Thread
    Public Function qwe() As Boolean
        Dim URL As String = "https://www.google.com"
        Dim Request As HttpWebRequest = HttpWebRequest.Create(New Uri(URL))
        Dim Response As HttpWebResponse
 
        Try
            'Request.Proxy = New WebProxy(proxy)
            Request.UserAgent = "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;"
            Request.Accept = "*/*"
            Response = Request.GetResponse()
            Return True
        Catch
            Return False
        End Try
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Th = New System.Threading.Thread(AddressOf qwe)
        Th.Start()
        If qwe() = False Then
 
            MsgBox("Сети нет")
        Else
            MsgBox("Сеть есть")
        End If
    End Sub
 
End Class
Здесь функция qwe() запускается в отдельном потоке.
При повторно нажатии на кнопку происходит зависание программы на некоторое время, потом выдает "Сети нет". Хотя сеть есть.
В чем проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2015, 14:05
Ответы с готовыми решениями:

Как проверить есть ли подключение к интернету?
???

Как разделить интернет подключение?
Добрый день господа компьютерщики! Вопрос таков: Есть 2 компа, 1. vista basic - 2. vista...

Как проверить интернет соединение?
#include <Wininet.h> bool isConnected() { if (!InternetCheckConnection(L"http://google.com",...

Как проверить подключение к Сети?
Доброго всем времени суток. Меня интересует, как в Delphi-7, проверить есть ли подключение к...

4
1568 / 1447 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
11.01.2015, 14:30 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Edgar4 Посмотреть сообщение
Здесь функция qwe() запускается в отдельном потоке.
Она вызывается два раза, в отдельном и нет
2
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
11.01.2015, 14:54  [ТС] 3
Цитата Сообщение от edward_freedom Посмотреть сообщение
Она вызывается два раза, в отдельном и нет
В дном!
Может как-нибудь закрыть поток?

Пробовал без потоков (просто обращаясь к функции), тоже самое.
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
12.01.2015, 19:34 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1. Есть функция Ping - уж лучше её использовать, чем гугл открывать.
2. edward_freedom прав - у тебя 2 вызова в примере - один в отдельном потоке (и его результат никак не обрабатывается), другой в текущем - его ты и проверяешь.
3. Ты плохо используешь HttpWebRequest. В таком варианте после первых 4 вызовов некоторое время будет возсращаться False. Почитай, зачем нужен Using.
2
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
12.01.2015, 21:56  [ТС] 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Qwertiy Посмотреть сообщение
Есть функция Ping - уж лучше её использовать
Огромное спасибо за мысль!
Вот что нарыл:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            If My.Computer.Network.Ping("www.google.com", 1000) = True Then
                MsgBox("Есть инет!")
            Else
                MsgBox("Нет инета!")
            End If
        Catch
            MsgBox("Нет сети!")
        End Try
    End Sub
Работает отлично!
2
12.01.2015, 21:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2015, 21:56
Помогаю со студенческими работами здесь

Как проверить подключение (idhttp)?
с помощью компонента idhttp отправляю get запрос с логином и паролем из edit, не знаю как проверить...

SQLAlchemy - как проверить подключение
Доброго времени. Подскажите пожалуйста, как можно проверить, создается ли подключение к базе, не...

Как проверить подключение к интернету?
Как проверить подключение к интернету? Чтобы , к примеру, вывести его в значение TRUE/FALSE???

Как на Ls проверить подключение к серверу?
Известно только лотусовое имя сервера. Нужно проверить наличие подключения... Как это сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru