Visual Basic TCP.

Slides:



Advertisements
Apresentações semelhantes
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
Advertisements

CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
I NTRODUÇÃO AO NVDA Aline Ferreira Jessica Pontes Roseane Martins.
Universidade Federal de Campina Grande – UFCG Centro de Ciências e Tecnologias – CCT Unidade Acadêmica de Engenharia Química - UAEQ Universidade Federal.
Introdução à Informática com Software Livre 11:37.
INTRODUÇÃO À COMPUTAÇÃO INTRODUÇÃO AO PYTHON EWERTON AMORIM DE OLIVEIRA.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Copyright ©2011 The McGraw-Hill Companies, All Rights Reserved. Capítulo 11 Programação de sockets em Java.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
Registro de Dados (Parte 2)
Recursividade, Entrada pelo teclado e Funções com retorno
Exercício Projete uma calculadora no LabVIEW capaz de adicionar, subtrair, dividir, multiplicar, extrair a raiz quadrada e elevar um número a uma potência.
ASP.NET Passo a Passo AJAX
Banco de Registradores e ALU
Sistemas Distribuídos Aula 6
Gladius Acesso Treinamento.
Sistemas Distribuídos Aula 7
Comandos da Linguagem C
AsyncTask e Socket no Android
Prof. Alberto F. De Souza LCAD/DI/UFES
Linguagem C Para programadores Python
Nome completo, vínculo institucional
Prof. Wellington Franco
IP – Condicionais e controle de fluxo
Introdução à Programação BCC 201 Aula
COMO FAZER SEU CADASTRO E REALIZAR A COMPRA DOS CURSOS
Estruturas de Dados Vetores.
Algoritmos e Fluxogramas
Arquitetura de Computadores
Instalador 5.0 Patch e Patch 5.2
Camada de Enlace de dados Controle de Fluxo
FUNDAMENTO DE PROGRAMAÇÃO
IP – Repetições Prof. Eduardo Falcão.
Endereçamento IP.
Introdução à Programação
Programação Orientada a Objetos
Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.
Funções do Usuário em Matlab
Programação para Internet Rica
Instalando e configurando a impressora Fiscal
Programação.
DESENVOLVIMENTO DE SOFTWARE AULA 6 – Programação Orientada a Objetos
Modelagem de Objetos de Domínio com Diagrama de Classes
Binário, Hexadecimal, Decimal
Elaborando as Interfaces Aulas 37, 38 e 39.
Remote Method Invocation
Programação Orientada a Objetos*
Sistemas Operacionais
TCP vs UDP CRD Filipe Pacheco.
Linguagem PASCAL Tipos Estruturados
Sistemas Distribuídos
Laboratório I Mateus Raeder.
Passo a passo – Instrutor
GRUPO “SEM” 1º ENCONTRO Fazendo Slides no Power Point
Instruções de Acesso à Memória e de Desvio Condicional
Laboratório I Mateus Raeder.
Writer Editor de texto do BrOffice.org
MEMORIAS RAUL DIAZ ROSAS.
PL/SQL Triggers e Procedures
Arrays de caracteres: strings
ALGORITMOS.
Python: Comandos Básicos
Matrizes.
Ordenando Coleções A Classe Collections.
Vetores.
Introdução a progrmação Comandos condicionais: if e switch
Interface Java: JFrame, JPanel, JButton, JLabel, JMenuBar, Jmenu, JMenuItem, addSeparator() e a biblioteca Java.Math Prof. Esp. André Aparecido da Silva.
UNIDADE 12 INTERFACE EM SÉRIE.
RESULUÇÃO DOS EXERCÍCIOS E
Aula 9 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

Visual Basic TCP

Servidor TCP Objecto no VB que permite programar um servidor TCP: TcpListener Inicialização: Dim server As TcpListener Dim port As Int32 = 13000 Dim localAddr As System.Net.IPAddress = System.Net.IPAddress.Parse("127.0.0.1") server = New TcpListener(localAddr, port)

TCP Listener Depois de inicializar um objecto é necessário activar o servidor server.Start() Nesta altura o servidor está pronto a receber ligações, mas para cada nova ligação é necessário usar um TcpClient

TcpClient Permite estabelecer uma ligação TCP Inicializar, e esperar pela próxima ligação: Dim client As TcpClient = server.AcceptTcpClient() Enquanto não houver uma ligação o programa fica parado nesta linha Para ler e escrever dados usamos um NetworkStream

NetworkStrem Inicializar a partir de um TcpClient (client) Dim stream As NetworkStream = client.GetStream() Para ler e escrever dados temos de usar um array de bytes Dim bytes(1024) As Byte A leitura devolve o número de bytes realmente lidos (ou zero se não estiverem dados disponíveis) Dim i As Int32 i = stream.Read(bytes, 0, bytes.Length)

Convertendo os dados recebidos Se estamos a transmitir dados em bytes, os dados estão “prontos a usar” Se estamos a usar strings temos de converter os bytes Dim data As String = Nothing data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)

Enviando dados Aplica-se o mesmo princípio que na recepção: apenas podemos enviar arrays de bytes stream.Write(msg, 0, msg.Length) Se queremos enviar texto temos de fazer a conversão antes: Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)

Fechando as contas Depois de transmitir e receber todos os dados devemos fechar os objectos stream.Close() client.Close() E no final de todo o processamento terminar o servidor server.Stop()

Cliente TCP Ligar a um servidor Dim server As String = "127.0.0.1" Dim port As Int32 = 13000 Dim client As New TcpClient(server, port) De resto o objecto TcpClient é usado da mesma forma que no servidor

Excepções Quando há um erro numa ligação TCP o Visual Basic gera uma “excepção” Para controlar as excepções usa-se as instruções Try/Catch Try ‘ instruções Catch e As SocketException ‘ processamento do erro End Try

Excepções Quando é disparada uma excepção o VB passa a execução directamente para o Catch respectivo Depois de processar o Catch o VB continua a execução depois do End Try Também se pode usar a instrução Finally para executar código final que é chamado depois de um catch ou no final da execução normal do código dentro do Try

Excepções Pode-se ter vários “Catch”, cada uma para o seu tipo de excepção: Catch e1 As ArgumentNullException ‘ processar excepção 1 Catch e2 As SocketException ‘ processar excepção 2

Threads Como no processamento do TCP é preciso ficar “à espera” que algo aconteça é normal usar Threads, que permitem executar diversos códigos VB em paralelo O código que vai ser iniciado em paralelo com o código principal deve ser definido num Sub sem parâmetros Private Sub ThreadProc() (nota: pode ter qualquer nome que se queira… não precisa de ser ThreadProc)

Threads Para “arrancar” a Thread usa-se: Dim t As New Thread(AddressOf ThreadProc) t.Start() Depois de t.Start o VB passa a executar dois códigos “ao mesmo tempo”: o código principal e o código de ThreadProc Podemos ter múltipas threads num programa As threads partilham as variáveis globais

Threads As coisas complicam-se (ainda mais) quando as Threads partilham objectos, como é o caso de ter uma Thread a aceder a um objecto da janela principal É necessário usar um “Invoke” que permite o acesso seguro entre Threads

Invoke A “receita” mais eficaz é usar um procedimento que chama o Invoke Exemplo para TextBox1.AppendText: Delegate Sub AppendTextCallback(ByVal text As String) Private Sub TextBox1AppendText(ByVal txt As String) Dim d As New AppendTextCallback(AddressOf TextBox1.AppendText) Me.Invoke(d, txt) End Sub

Invoke O “Callback” tem os mesmos parâmetros do método AppendText que queremos chamar: Delegate Sub AppendTextCallback(ByVal text As String) Se quisermos mudar o texto de várias caixas de texto temos de definir procedimentos para cada uma

Invoke Sempre que quisermos “mexer” em qualquer coisa da janela principal temos de usar um Invoke Isto aplica-se quer a mudar o texto de uma textbox, a mudar o texto ou posição de um botão ou até o título da janela, etc…