Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


2 participantes

    Visual basic 6 Winsock - Parte IV

    DragonicK
    DragonicK
    Experiente
    Experiente


    Mensagens : 542
    Créditos : 81

    Ficha do personagem
    Nível: 1
    Experiência:
    Visual basic 6 Winsock - Parte IV Left_bar_bleue0/0Visual basic 6 Winsock - Parte IV Empty_bar_bleue  (0/0)
    Vida:
    Visual basic 6 Winsock - Parte IV Left_bar_bleue30/30Visual basic 6 Winsock - Parte IV Empty_bar_bleue  (30/30)

    Visual basic 6 Winsock - Parte IV Empty Visual basic 6 Winsock - Parte IV

    Mensagem por DragonicK Seg Jan 27, 2014 7:13 pm

    Trabalhando com muitos clientes.
    Essa parte é apenas no servidor, para entender, recomendo estudar array.

    No visual basic 6, há a opção para criar um array de controle dentro da caixa de propriedades. Isso facilita um pouco.

    Visual basic 6 Winsock - Parte IV 1iwh
    O que vamos fazer é usar apenas 1 winsock para escutar as conexões e, aceita-las no winsock adicional.

    Server(0) será a porta para todas as conexões, quando uma nova conexão for aceita. Colocaremos essa conexão no Server(1) e assim por diante.

    Eu adicionei um listbox ao servidor, ficando:
    Visual basic 6 Winsock - Parte IV 27t3

    Vou abrigar 10 clientes no servidor, nesse caso, tenho que criar 10 variaveis buffer, uma cada para cliente. Criei uma estrutura com buffer e uma variavel boolean como conected.

    Visual basic 6 Winsock - Parte IV Px98

    No command1, o botão para ligar o servidor, precisamos inicializar os novos winsock para não causar nenhum erro ao programa. Perceba que, Server(0) sempre será o winsock de escuta.
    Visual basic 6 Winsock - Parte IV Dvu1

    A partir de agora, quando trabalhamos com controle de array, os métodos dos objetos sempre devem conter o parâmetro "Index", esse index é o número de cada controle. 

    Se alguém conectar no primeiro controle Server(1), o número da conexão desse individuo será 1 e sucessivamente.

    Quando a conexão fechar, esse cliente será desconectado para que outro possa conectar no mesmo lugar, caso contrário, o winsock continuará ocupado sendo que não há ninguém conectado.

    Visual basic 6 Winsock - Parte IV D8r0

    No metodo ConnectionRequest, vamos procurar por um lugar disponível nas nossas variaveis. 

    Server(0) só receberá a conexão e irá procurar algum lugar livre para aceita-la.

    Visual basic 6 Winsock - Parte IV Vmwg

    No método DataArrival, onde os dados chegam, cada informação que chegar ao servidor, devemos colocar dentro de seus respectivos donos para que não haja nenhuma confusão. 
    Foi esse o motivo de eu ter trocado, buffer por Cliente(Index).buffer.

    Visual basic 6 Winsock - Parte IV Np7p

    E por último, o HandleData, a diferença é que vamos passar o número index para ele também para que o servidor possa devolver os dados caso necessitar.

    Visual basic 6 Winsock - Parte IV 6dy0

    Criamos 11 winsock no servidor, o Socket número 0, será o responsável por aceitar todas as conexões na porta 666. 

    Quando ocorre um novo pedido de conexão, o Socket 0, joga a conexão nos winsock de 1 a 10, a porta 666 sempre estará livre pois quem está com as conexões são os winsock 1 a 10.

    A porta 666 esperando por uma conexão.
    Visual basic 6 Winsock - Parte IV 3ifc

    Abri 5 clientes e conectei ao servidor.
    O cliente 1 conectou com a porta 9940 na porta 666 do servidor.
    O cliente 2 conectou com a porta 9941 na porta 666 do servidor.
    O cliente 3 conectou com a porta 9942 na porta 666 do servidor.
    O cliente 4 conectou com a porta 9943 na porta 666 do servidor.
    O cliente 5 conectou com a porta 9944 na porta 666 do servidor.
    Visual basic 6 Winsock - Parte IV 5x5k


    http://www.mediafire.com/download/oe5d0440495635a/Winsock_Aula_4.rar
    Tobi S2
    Tobi S2
    Novato
    Novato


    Mensagens : 14
    Créditos : 2

    Visual basic 6 Winsock - Parte IV Empty Re: Visual basic 6 Winsock - Parte IV

    Mensagem por Tobi S2 Seg Fev 17, 2014 6:50 am

    Valeu pela outra boa aula! Eu fiquei com algumas duvidas, depois de tudo que li até agora
    É dessa forma que os servidores de grande porte funciona tbm? Quantos clientes aproximadamente esse cliente suportaria num pc comum?

      Data/hora atual: Ter Mar 19, 2024 3:50 am