Visual basic 6 Winsock - Parte V
2 participantes
Página 1 de 1
Visual basic 6 Winsock - Parte V
Introdução sobre o Winsock
O componente winsock, presente no Windows, é um dos componentes mais interessantes que podemos citar. Com ele por exemplo, podemos criar chats, jogos multiplayers, clientes de email e, uma variedade de aplicações que use a internet como foco. Iniciando
1- Inicie o Visual Basic e crie um projeto Standard EXE.
2- Pressione CTRL+T ou vá em Project-> Components, e adicione o controle: Microsoft Winsock Control 6.0
3- Adicione no form, o objeto Winsock, que se encontra na barra de componentes à esquerda.
Propriedades e Membros
Ao adicionar o objeto no formulário, observando suas propriedades:
Name: Nome do Controle
Index: Especifica se é um array de controles
Left: Posicionamento à esquerda
Localport: Porta local
Protocol: 0 - sckTCPProtocol(TCP) ou 1 - sckUDPProtcol(UDP)
RemoteHost: Host alvo para conectar
RemotePort: Porta alvo para conectar
Tag: Informações Extra
Top: Posicionamento Vertical
Membros do componente:
Accept:
Aceita uma conexão.
- Código:
Winsock.Accept(requestID)
Bind:
Binda o winsock.
- Código:
Winsock.Bind(PORTA_LOCAL,IP_LOCAL)
Retorna o número de bytes recebidos
Close:
Fecha uma conexão
- Código:
Winsock.Close
Connect:
Conecta à um host
- Código:
Winsock.Connect 'Quando um host e porta já foram especificados
Winsock.Connect(IP, Porta)
GetData:
Obtém dos dados recebidos em uma variível
- Código:
Winsock.GetData(Variavel, Tipo, Max)
Opcionais:
Tipo = Tipo de dados: vbstring(padrao), vblong(inteiro), vbbyte
Max = Tamanho máximo de dados a receber.
Listen:
Coloca o socket em modo de espera
- Código:
Winsock.Listen
LocalHostName: Mostra o nome do host local.
LocalIp: Obtém o IP local
LocalPort: Obtém/Configura a Porta local
Protocol: Obtém/configura o protocolo: sckTCPProtocol e sckUDPProtocol.
RemoteHost: Obtém/Configura hostname do host.
RemoteHostIP: Obtém o IP do host.
RemotePort: Obtém/Configura a porta remota.
SendData:
Envia dados ao host remoto
- Código:
Winsock.Senddata(Data)
State: Obtém o estado do socket (listados adiante)
Eventos
Vimos as propriedades e membros do winsock, veremos agora a parte mais interessante em termos de interatividade.
Close:
Ocorre quando o socket é fechado
- Código:
Private Sub Winsock1_Close()
' Códigos
End Sub
Connect:
Ocorre quando uma conexão é completada
- Código:
Private Sub Winsock1_Connect()
' Códigos
End Sub
ConnectionRequest:
Ocorre quando há um pedido de conexão
- Código:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
' Códigos
End Sub
DataArrival:
Ocorre quando são recebidos dados.
- Código:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
' Códigos
End Sub
Error:
Ocorre quando foi resultado um erro.
- Código:
Private Sub ws_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
' Códigos
End Sub
number = número do erro
description = descrição do erro
SendComplete:
Ocorre quando o envio de dados é completado
- Código:
Private Sub Winsock1_SendComplete()
' Códigos
End Sub
SendProgress:
Ocorre quando dados estão sendo enviados
- Código:
Private Sub Winsock1_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long)
' Códigos
End Sub
bytesRemaining = número de bytes restantes
Erros e estados de conexão
Abaixo listarei as constantes que representam o comportamento do winsock, ao longo do processo.
Erros mais comuns:
sckAddressInUse:
Ocorre quando a porta utilizada na tentativa de colocar o socket em modo listen, já estiver sendo usada.
sckAddressNotAvaiable:
Ocorre quando na função Bind, é espeficifado um IP local inválido.
sckAlreadyConnect:
Ocorre quando o socket já estiver conectado e um pedido para que ele conecte-se é feito, sem fecha-lo previamente.
sckBadState: O estado do socket não permite tal operação
sckConnectAborted: A conexão foi Cancelada
sckConnectRefused: Conexão Recusada
sckConnectionReset: A conexão foi reiniciada
sckHostNotFound: Host não encontrado
sckTimedout: Tempo Esgotado
sckWrongProtocol: Protocolo Incorreto
Manipulando erros:
Exemplo 1:
- Código:
Function Enviar()
On Error GoTo verificar
Winsock1.SendData ("Enviar dados por TCP sem conectar-se antes, ocasiona em erro")
Exit Function
verificar:
Select Case Err.Number
Case sckBadState:
End
End Select
End Function
Pode-se usar o evento ERROR em algumas ocasiões.
Exemplo 2:
- Código:
Private Sub winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Select Case Number
Case sckTimedout
MsgBox Description
End select
Winsock1.Close
End Sub
sckClosed -> Socket fechado.
sckClosing -> Socket fechando.
sckConnecting -> Em processo de conexão.
sckConnectionPending -> Pedido de conexão aguardando.
sckError -> Erro no socket.
sckHostResolved -> Host resolvido.
sckListening -> Aguardando conexões.
sckOpen -> Socket pronto para uso.
SckResolvingHost -> Resolvendo host.
Manipulando estados:
Exemplo 1:
- Código:
Function Ver_Estado()
Select Case Winsock1.State
Case sckClosed:
MsgBox "Socket Fechado"
Winsock1.LocalPort = 1234
Winsock1.Listen
Case sckListening:
MsgBox "Socket aguardando..."
Winsock1.Close
End Select
End Function
Re: Visual basic 6 Winsock - Parte V
Para não criar outro tópico, apenas editei e mudei o título para Visual basic 6 Winsock - Parte V como continuação das aulas. Essa resposta é para dizer que o tópico está ativo novamente.
DragonicK- Membro de Honra
- Mensagens : 315
Tópicos semelhantes
» Visual basic 6 Winsock - Parte III
» Visual basic 6 Winsock - Parte IV
» Visual basic 6 Winsock - Parte I
» Visual basic 6 Winsock - Parte II
» visual basic
» Visual basic 6 Winsock - Parte IV
» Visual basic 6 Winsock - Parte I
» Visual basic 6 Winsock - Parte II
» visual basic
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Dom 08 Abr 2018, 18:40 por JorgeZinhoo002
» Ojkjeeeee
Seg 10 Out 2016, 23:19 por Frozen
» Naruto Great Ninja Batle
Dom 09 Out 2016, 14:29 por GuiinhoLP
» Recrutamento de um Designer para jogo de CDZ.
Sex 23 Set 2016, 18:37 por newbie123
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:09 por Eduardo
» Projeto Dbz
Qua 31 Ago 2016, 23:46 por 157
» Avaliação - Sprites Naruto
Qua 31 Ago 2016, 17:09 por 157
» [Sprites] DBZ (Plix)
Qua 31 Ago 2016, 14:13 por 157
» Super Pack - Bleach V.2
Qua 31 Ago 2016, 13:02 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:04 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:03 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:02 por 157
» [Pedido] Contador de resets na FrmMain
Sáb 13 Ago 2016, 17:45 por killers97
» [Recrutamento]
Qua 10 Ago 2016, 23:09 por Monsters
» Ajuda erro no Cliente e Servidor do EEB 2.6!
Qua 20 Jul 2016, 19:53 por Binholx
» Como criar tilesets para Eclipse Origins 3.0 (POKÉMON)
Qua 29 Jun 2016, 19:46 por Sir Aaron
» Recursos Pokemons
Qua 29 Jun 2016, 19:34 por Sir Aaron
» erro frm flash
Qua 25 maio 2016, 13:51 por vava123
» Pedido - Pack de star wars
Qui 19 maio 2016, 05:06 por edsonpet
» [Ajuda] Sobre como por o servidor on por ip fixo
Ter 17 maio 2016, 16:14 por vava123
» Illusion Dimension - O Misterio do ID: BETA TESTE ONLINE
Sex 06 maio 2016, 20:02 por LksFlorencio
» [NSME] Naruto Shinobi Maker Engine
Qua 23 Mar 2016, 15:11 por luana1457
» Script /base,/casa Igual DBZ Forces
Dom 21 Fev 2016, 07:34 por JorgeZinhoo002
» [Pedido]Colar Tsunade item sprite eclipse origin
Qui 21 Jan 2016, 07:38 por lawllietbr
» [Pedido] Elysium
Sáb 19 Dez 2015, 11:31 por luana1457
» Naruto - Recruta
Ter 15 Dez 2015, 18:40 por Uchiha ~
» [Avaliação] - Kirito from Sword Art Online; Red and Pikachu from Pokemon.
Qua 25 Nov 2015, 13:43 por Thanakii
» [Avaliação] - Kenpachi Zaraki from Bleach; Libra Shiryu From Saint Seiya.
Qua 25 Nov 2015, 12:55 por Thanakii
» Demonstração de Sprites (Á VENDA!)
Qua 25 Nov 2015, 12:40 por Thanakii
» [Sistema de Reset]Para Eclipse .
Ter 24 Nov 2015, 16:51 por VithorUchi
» Cada Guild Nascer em Certo Mapa
Qui 12 Nov 2015, 06:13 por fabiofeijó_HIT
» Dragon Ball z Fusion A Grande Volta
Qui 29 Out 2015, 15:17 por fabiofeijó_HIT
» Ajuda com Ip fixo
Seg 26 Out 2015, 16:07 por GalaxyHells15
» Como Fazer um GUI no Eclipse Origins
Dom 18 Out 2015, 22:10 por Jeanleee
» Shisui Susanoo
Dom 18 Out 2015, 20:23 por Jeanleee
» Fantasy Art Online
Dom 18 Out 2015, 16:41 por daviih123
» Ajuda !!
Seg 05 Out 2015, 12:13 por andersonzika
» como passar o usuário e senha para o MainMenu?
Seg 28 Set 2015, 22:03 por Bëzerk
» Ru time ero 13 Type mismatch
Seg 28 Set 2015, 09:08 por andredarle
» Jarvis 1.3 Download
Qua 23 Set 2015, 18:42 por soares125
» [Avaliação/Disponibilização]Árvore 64x64
Qua 23 Set 2015, 15:15 por Over~
» Mlk's Zikas Signatures
Ter 22 Set 2015, 21:15 por Aikawa Reborn'
» Pedido de Sistemas
Dom 20 Set 2015, 18:05 por cleyton_05
» [AjudaEEB]Gerador de EXP
Qua 16 Set 2015, 14:04 por Over~
» [Avaliar] Base, Humano e Goblin.
Seg 14 Set 2015, 22:51 por .iBlaz3.
» Fabrica do Tio Cronos!
Dom 13 Set 2015, 21:31 por [ADM]Cronos
» [PixelArt] Minion - Meu malvado favorito
Dom 13 Set 2015, 12:51 por [ADM]Cronos
» [Avaliar] Goku Dragon Ball Z
Qua 05 Ago 2015, 21:36 por Setrux