VB .NET - Verificando a conexão com a internet
O artigo de hoje é um artigo para iniciantes da linguagem VB .NET e mostra como verificar a conexão com a internet em aplicações Windows Forms usando a linguagem VB .NET. |
Se você está começando agora com a linguagem VB .NET, pode ter muitas dúvidas de como realizar algumas tarefas, mesmo sabendo como fazer isso usando outra linguagem.
Hoje eu selecionei como tarefa básica: verificar a conexão com a internet em uma aplicação Windows Forms.
Veremos que existe mais de uma forma de realizar essa tarefa.
Então chega de conversa e vamos ao trabalho...
Recursos usados :
Criando a solução no VS 2013 Express Edition
Abra o VS 2013 Express for Windows desktop e clique em New Project;
A seguir selecione Visual Studio Solutions -> Blank Solution
Informe o nome VBNET_Web e clique no botão OK;
Com isso teremos uma solução VBNET_Web criada à qual iremos adicionar o nosso projeto.
Criando a classe com métodos para verificar a conexão
No menu File clique em FILE -> Add -> New Project;
A seguir selecione o template Windows Forms Application e informe o nome VerificaConexaoInternet
No formulário form1.vb vamos incluir os seguintes controles a partir da ToolBox:
4 Buttons - btnVerificaConexao1, btnVerificaConexao2, btnVerificaConexao3, btnVerificaConexao4, btnVerificaConexao5 e btnEncerrar
1 PictureBox - picImagem , SizeMode - StretchImage
Disponha os controles no formulário conforme o leiaute da figura abaixo:
Agora vamos incluir uma classe em nosso projeto onde vamos definir alguns métodos para verificar a conexão com a internet.
No menu PROJECT Clique em Add Class e informe o nome VerificaConexao;
A seguir inclua o código abaixo nesta classe:
Imports System.Net
Public Class VerificaConexao
Public Shared Function VerificaConexao_TcpSocket() As Boolean
Try
Dim cliente As New Sockets.TcpClient("www.google.com", 80)
cliente.Close()
Return True
Catch ex As System.Exception
Return False
End Try
End Function
Public Shared Function VerificaConexao_WebClient() As Boolean
Try
Using client = New WebClient()
Using stream = client.OpenRead("http://www.google.com")
Return True
End Using
End Using
Catch
Return False
End Try
End Function
Public Shared Function VerificaConexao_WebRequest() As Boolean
Dim objUrl As New System.Uri("http://www.youtube.com")
Dim objWebReq As System.Net.WebRequest
objWebReq = System.Net.WebRequest.Create(objUrl)
Dim objresp As System.Net.WebResponse
Try
objresp = objWebReq.GetResponse
objresp.Close()
objresp = Nothing
Return True
Catch ex As Exception
objresp = Nothing
objWebReq = Nothing
Return False
End Try
End Function
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef _
lpSFlags As Int32, ByVal dwReserved As Int32) As Boolean
Private Enum InetConnState
modem = &H1
lan = &H2
proxy = &H4
ras = &H10
offline = &H20
configured = &H40
End Enum
Public Shared Function VerificaConexao_Win32() As Boolean
Dim lngFlags As Long
If InternetGetConnectedState(lngFlags, 0) Then
If lngFlags And InetConnState.lan Then
ElseIf lngFlags And InetConnState.modem Then
ElseIf lngFlags And InetConnState.configured Then
ElseIf lngFlags And InetConnState.proxy Then
ElseIf lngFlags And InetConnState.ras Then
ElseIf lngFlags And InetConnState.offline Then
End If
Return True
Else
Return False
End If
End Function
End Class
|
Essa classe possui 3 métodos estáticos :
Essa função recebe dois parâmetros.
A função retorna TRUE indicando se existe uma conexão ou modem ativo, ou FALSE se não existir conexão ou se todas as conexão não estão ativas.
E finalmente também podemos usar o método My.Computer.Network.Ping(servidor) que pinga um servidor específico.
O método
Ping não é um método à prova de falhas para determinar a disponibilidade de
um computador remoto: a porta onde ping esta atuando no computador de destino
pode estar desligada ou a solicitação de ping pode ser bloqueada por um firewall
ou roteador.
O endereço usado no método precisa ser um DNS resolvido e não pode ser precedido
por "http://".
Implementando o código no formulário
Agora vamos implementar o código usando a classe VerificaConexao() em nosso formulário.
Quando o formulário for apresentando o usuário deverá clicar em qualquer um dos botões para verificar a conexão.
O código do formulário é o seguinte:
Private Sub btnVerificaConexao1_Click(sender As Object, e As EventArgs) Handles btnVerificaConexao1.Click If VerificaConexao.VerificaConexao_Win32 = True Then MessageBox.Show("Conexão Disponível.", "Conectado", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Sem Conexão Disponível.", "Desconectado", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub btnVerificaConexao2_Click(sender As Object, e As EventArgs) Handles btnVerificaConexao2.Click End Sub Private Sub btnVerificaConexao3_Click(sender As Object, e As EventArgs) Handles btnVerificaConexao3.Click Private Sub btnVerificaConexao4_Click(sender As Object, e As EventArgs) Handles btnVerificaConexao4.Click Private Sub btnVerificaConexao5_Click(sender As Object, e As EventArgs) Handles btnVerificaConexao5.Click Private Sub btmEncerrar_Click(sender As Object, e As EventArgs) Handles btmEncerrar.Click |
No código acima estamos usando os métodos da classe VerificaConexao() e o método Ping() do recurso My do VB .NET para verificar a conexão com a internet.
Executando o projeto e verificando a conexão iremos obter:
Nota: Em outro artigo eu vou abordar a classe HttpClient que é um cliente HTTP moderno para a plataforma .NET,e fornece uma API extensível para acessar tudo o que é exposto através de HTTP.
Pegue o projeto completo aqui : VBNET_Web.zip
Rom 3:10 como está escrito: Não há justo, nem sequer um.
Rom 3:11
Não há quem entenda; não há quem busque a Deus.Rom 3:12
Todos se extraviaram; juntamente se fizeram inúteis. Não há quem faça o bem, não há nem um só.Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Trocando dados entre sua aplicação Visual Basic e a Internet