Visual basic 6 Winsock - Parte I
2 participantes
Página 1 de 1
Esse tópico foi útil?
Visual basic 6 Winsock - Parte I
Winsock Básico
No projeto, adicione um componente Winsock e renomeie para Server, agora adicione mais 2 botões e mude o caption do Button1 para Start e Button2 Stop. Ops! e uma Label para podermos indicar o Status.
---------------------------------------------------------------------------------------
No CommandButton1 iremos Startar o Servidor, então entramos com o código :
Aqui definimos qual porta será usada. Logo abaixo o comando Listen, é usado para entrar no modo de “escuta”, ou seja, o servidor está esperando uma conexão, “escutando”.
---------------------------------------------------------------------------------------
No CommandButton2 iremos parar o Servidor, então entramos com o código :
Aqui irá fechar o Servidor e qualquer tipo de conexão que esteja ou não em andamento será finalizada.
---------------------------------------------------------------------------------------
Nossa próxima etapa é aceitar a conexão do cliente :
Nesta Sub, temos que fechar o modo de escuta, e aceitar a conexão. Verifico se o estado do Servidor está “diferente” de “Fechado”. Se estiver fechado, aceita a conexão. Senão, fecha o Server e depois aceita.
---------------------------------------------------------------------------------------
Agora vamos criar um novo Projeto, este será o cliente :
Adicione :
3 TextBox
3 Label
3 CommandButton
1 Componente Winsock
1 Timer
Ficando na forma final assim :
Renomeie o Winsock1 para Cliente e agora vamos nos conectar ao Servidor :
No Command1 eu usei o código para entrar. Primeiro eu declaro as variáveis, depois defino as variáveis. Antes de conectar eu verifico se o Cliente já esta Conectado, se estiver, a mensagem será exibida, caso contrário, ele conecta ao Server. E no Command2 temos o botão sair, que irá fechar o programa.
--------------------------------------------------------------------------------------
No Timer1 deixe, o Interval em 1000 e em Enabled deixe como True:
A cada 1 segundo o Timer verificará o estado do cliente, quando estiver conectado irá mostrar na Label3.
---------------------------------------------------------------------------------------
No botão Enviar que é o Command3, vamos enviar os dados contidos na TextBox3 para o servidor :
Crio uma variável para guardas as informações contidas em TextBox3, verifico se o estado do cliente está conectado, se estiver envia os dados, do contrário mostra a mensagem.
---------------------------------------------------------------------------------------
Agora devemos voltar ao servidor para manipular os dados que foram enviados do Cliente.
Na Sub Server_DataArrival, primeiro devemos declarar uma variável para que o Server, quando baixado as informações, guardar os dados nesta variável.
“Server.GetData Pacote “ A cada vez o que o servidor receber dados enviados pelo Cliente, esta sub é acionado e ele irá guardar os dados na variável Pacote.
Então mostra a mensagem “Recebi do Cliente : “ + Dados Recebidos.
---------------------------------------------------------------------------------------
E para finalizar, vamos a Sub Server_Close, quando o Server perder a conexão.
E também, adicionar o mesmo ao cliente.
Fechar o Cliente e o Server quando perder a conexão.
Toda vez que o Server e o Cliente perderem a conexão, irão fechar. E então teremos que Startar novamente.
Espero que este tutorial tenha lhe ajudado a entender mais sobre o winsock.
Dica: Sempre tente, verificar os estados do sock, assim você pode ter menos erros em seu programa.
Download do projeto : Winsock Projeto
No projeto, adicione um componente Winsock e renomeie para Server, agora adicione mais 2 botões e mude o caption do Button1 para Start e Button2 Stop. Ops! e uma Label para podermos indicar o Status.
---------------------------------------------------------------------------------------
No CommandButton1 iremos Startar o Servidor, então entramos com o código :
Aqui definimos qual porta será usada. Logo abaixo o comando Listen, é usado para entrar no modo de “escuta”, ou seja, o servidor está esperando uma conexão, “escutando”.
---------------------------------------------------------------------------------------
No CommandButton2 iremos parar o Servidor, então entramos com o código :
Aqui irá fechar o Servidor e qualquer tipo de conexão que esteja ou não em andamento será finalizada.
---------------------------------------------------------------------------------------
Nossa próxima etapa é aceitar a conexão do cliente :
Nesta Sub, temos que fechar o modo de escuta, e aceitar a conexão. Verifico se o estado do Servidor está “diferente” de “Fechado”. Se estiver fechado, aceita a conexão. Senão, fecha o Server e depois aceita.
---------------------------------------------------------------------------------------
Agora vamos criar um novo Projeto, este será o cliente :
Adicione :
3 TextBox
3 Label
3 CommandButton
1 Componente Winsock
1 Timer
Ficando na forma final assim :
Renomeie o Winsock1 para Cliente e agora vamos nos conectar ao Servidor :
No Command1 eu usei o código para entrar. Primeiro eu declaro as variáveis, depois defino as variáveis. Antes de conectar eu verifico se o Cliente já esta Conectado, se estiver, a mensagem será exibida, caso contrário, ele conecta ao Server. E no Command2 temos o botão sair, que irá fechar o programa.
--------------------------------------------------------------------------------------
No Timer1 deixe, o Interval em 1000 e em Enabled deixe como True:
A cada 1 segundo o Timer verificará o estado do cliente, quando estiver conectado irá mostrar na Label3.
---------------------------------------------------------------------------------------
No botão Enviar que é o Command3, vamos enviar os dados contidos na TextBox3 para o servidor :
Crio uma variável para guardas as informações contidas em TextBox3, verifico se o estado do cliente está conectado, se estiver envia os dados, do contrário mostra a mensagem.
---------------------------------------------------------------------------------------
Agora devemos voltar ao servidor para manipular os dados que foram enviados do Cliente.
Na Sub Server_DataArrival, primeiro devemos declarar uma variável para que o Server, quando baixado as informações, guardar os dados nesta variável.
“Server.GetData Pacote “ A cada vez o que o servidor receber dados enviados pelo Cliente, esta sub é acionado e ele irá guardar os dados na variável Pacote.
Então mostra a mensagem “Recebi do Cliente : “ + Dados Recebidos.
---------------------------------------------------------------------------------------
E para finalizar, vamos a Sub Server_Close, quando o Server perder a conexão.
E também, adicionar o mesmo ao cliente.
Fechar o Cliente e o Server quando perder a conexão.
Toda vez que o Server e o Cliente perderem a conexão, irão fechar. E então teremos que Startar novamente.
Espero que este tutorial tenha lhe ajudado a entender mais sobre o winsock.
Dica: Sempre tente, verificar os estados do sock, assim você pode ter menos erros em seu programa.
Download do projeto : Winsock Projeto
Última edição por DragonicK em Sex 23 Ago 2013, 18:50, editado 4 vez(es)
DragonicK- Membro de Honra
- Mensagens : 315
Re: Visual basic 6 Winsock - Parte I
Muito bom Dragonick, mas ao invés de "sckClose" mude para "sckClosed" e o texto:
No Server_Close não seria melhor chamar o Command2_Click ao invés de repetir o código?
De qualquer forma + 1 crédito pela iniciativa
@Edit: Aqui vão alguns comandos mais básicos
Funções:
Accept: Aceita uma conecção esperada
Close: Prepara ou re-prepara o Winsock para ser utilizado novamente
Connect: Tenta se conectar com um computador que esteja esperando uma conexão
GetData: Armazena em uma determinada memória o valor atual recebido
Listen: "Escuta", isto é...abre uma porta e espera uma conexão
SendData: Envia uma determinada Mensagem para o Host Conectado
Propriedades:
Protocol: pode ser (0 ou sckTCPProtocol) ou (1 ou sckUDPProtocol)
LocalHostName: Nome do seu Host(você)
LocalIP: Seu IP
LocalPort: Sua Porta de escuta
RemoteHost: Host Remoto
RemoteHostIP: IP do Host Remoto
RemotePort: Porta do Host Remoto na qual está sendo usada
State: Estado atual do Componente, que varia de 0 a 9, Listado abaixo os estados
Status
sckClosed = 0 (Padrão, Fechado, preparado para o que precisar)
sckOpen = 1 (Aberto)
sckListening = 2 (Escutando)
sckConnectionPending = 3 (Esperando pronto para Conexão)
sckResolvingHost = 4 (Resolvendo Host)
sckHostResolved = 5 (Host Resolvido)
sckConnecting = 6 (Conectando)
sckConnected = 7 (Conectado)
sckClosing = 8 (Fechando conexão)
sckError = 9 (Erro)
Eventos:
Close: É Executado toda vez que a conexão fechada, não é executado quando a função close é utilizada...
Connect: É Executado toda vez que uma conexão é estabelecida
ConnectionRequest: É Executado toda vez que tentam se conectar com o seu controle, apenas se o seu controle estiver "escutando"(state = 2 ou state = sckListening)
DataArrival: É executado Toda vez que (quando conectado) receber alguma informação
paraCrio uma variável para guardas
Crie uma variável para guardar
No Server_Close não seria melhor chamar o Command2_Click ao invés de repetir o código?
De qualquer forma + 1 crédito pela iniciativa
@Edit: Aqui vão alguns comandos mais básicos
Funções:
Accept: Aceita uma conecção esperada
Close: Prepara ou re-prepara o Winsock para ser utilizado novamente
Connect: Tenta se conectar com um computador que esteja esperando uma conexão
GetData: Armazena em uma determinada memória o valor atual recebido
Listen: "Escuta", isto é...abre uma porta e espera uma conexão
SendData: Envia uma determinada Mensagem para o Host Conectado
Propriedades:
Protocol: pode ser (0 ou sckTCPProtocol) ou (1 ou sckUDPProtocol)
LocalHostName: Nome do seu Host(você)
LocalIP: Seu IP
LocalPort: Sua Porta de escuta
RemoteHost: Host Remoto
RemoteHostIP: IP do Host Remoto
RemotePort: Porta do Host Remoto na qual está sendo usada
State: Estado atual do Componente, que varia de 0 a 9, Listado abaixo os estados
Status
sckClosed = 0 (Padrão, Fechado, preparado para o que precisar)
sckOpen = 1 (Aberto)
sckListening = 2 (Escutando)
sckConnectionPending = 3 (Esperando pronto para Conexão)
sckResolvingHost = 4 (Resolvendo Host)
sckHostResolved = 5 (Host Resolvido)
sckConnecting = 6 (Conectando)
sckConnected = 7 (Conectado)
sckClosing = 8 (Fechando conexão)
sckError = 9 (Erro)
Eventos:
Close: É Executado toda vez que a conexão fechada, não é executado quando a função close é utilizada...
Connect: É Executado toda vez que uma conexão é estabelecida
ConnectionRequest: É Executado toda vez que tentam se conectar com o seu controle, apenas se o seu controle estiver "escutando"(state = 2 ou state = sckListening)
DataArrival: É executado Toda vez que (quando conectado) receber alguma informação
Tópicos semelhantes
» Visual basic 6 Winsock - Parte II
» Visual basic 6 Winsock - Parte V
» Visual basic 6 Winsock - Parte III
» Visual basic 6 Winsock - Parte IV
» GUI Em Visual Basic
» Visual basic 6 Winsock - Parte V
» Visual basic 6 Winsock - Parte III
» Visual basic 6 Winsock - Parte IV
» GUI Em 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