1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[VB6] Chat

Discussão em 'Programação' iniciada por WinAce_Boy, 11 de Janeiro de 2008. (Respostas: 14; Visualizações: 2020)

  1. WinAce_Boy

    WinAce_Boy Power Member

    Depois de muitas tentativas(e muito tempo) consegui fazer à pouco tempo de programar um chat em vb6.0 mas o servidor só dá para um cliente.. Como faço para escutar a mais de um cliente?
    Agradecia uma resposta o mais rápido possível p.f..:)

    Obrigado pela atenção, Abraços ;)
     
  2. pascasso

    pascasso Power Member

    boas,

    eu fiz um projecto desses também em VB6 e pus também a possibilidade de ter até três pessoas na conversa incluindo servidor.
    Isso não é possível. Pelo menos no melhor socket a usar que, é o que provavelmente estás a usar, o Winsock.

    O que fiz foi: Pus no servidor a possibilidade e fazer uma outra escuta num outro porto com outro socket igual. Se a pessoa do lado do servidor escolhesse para ter dois clientes então teria de pôr dois portos de escuta ambos seriam atribuídos ao seu respectivo socket. Quando carregava em OK, começava a listeningnos dois portos. Depois de maneira a que todos recebessem as mensagens uns dos outros foi complicado mas faz-se: O SERVIDOR manda uma mensagem essa mensagem é enviada para o CLIENTE1 e o CLIENTE2. Quando o CLIENTE1 manda uma mensagem, vai apenas para o SERVIDOR e se a boolean, da pessoa do lado do servidor tiver escolhido dois clientes, tiver igual a true então manda para o outro cliente e virce-versa.

    Está aqui explicado a estrutura, nem sei se queres fazer assim, mas no caso, tens de traduzir isso em código ;)
     
  3. WinAce_Boy

    WinAce_Boy Power Member

    Obrigado pascasso, isso ajudou muito, mas o que eu cria saber mesmo, era com ciclos que mantivessem o servidor sempre a escutar..e com muitos clientes a conectarem-se a ele, mas eu vou pesquisando no google..qualquer ajuda eu ficava agradecido
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Eu uso (aliás, usava, já que parece que não funciona no WinVista) a classe CSocketMaster, e existe a CSocketPlus que te permite ter uma array de sockets.
    Isto permitir-te-ia escutar numa porta predeterminada, e quando esta recebesse uma ligação, abria um socket novo e mandava esse socket aceitar a nova ligação noutra porta. Assim, a porta principal fica sempre livre e são criados sockets à medida que são necessários.
    O problema é que não sei fazer uma array de WinSocks, e seria algo assim que precisavas.

    Não tenho muito tempo para pesquisas, mas parte disto: http://www.google.pt/search?hl=pt-PT&q=winsock+%22multiple+connections%22+%22visual+basic+6%22+OR+%22vb6%22&meta=

    edit - o primeiro link, do VBForuns. parece-me ser promissor :)

    Boa sorte!
     
  5. WinAce_Boy

    WinAce_Boy Power Member

    Uma questão...quando tento executar o meu chat (tanto o cliente como o servidor) noutro pc sem ser o meu... dá-me um erro.. só em pcs com o vb6 instalado é que o meu chat vai funcionar ou tem a ver com a framework?

    Obrigado pela atenção
     
  6. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Framework? Estás no VB6 ou num .NET?

    Que erro dá?

    Estás a usar o controlo WinSock ou o CSocket*?
     
  7. WinAce_Boy

    WinAce_Boy Power Member

    estou no vb6, o erro não me recordo exactamente mas sei que tinha a ver com o mswinsock era um erro esquisito que me da em todos os pcs senao o meu e o da mha irma (penso eu porque têm o vb6 instalado).

    Só uma coisa...isto nunca te aconteceu?

    Obrigado pela atenção :D
     
  8. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Pode ser o facto de o controlo Winsock não existir ou não estar registado no Windows.
    Passa a levar o MSWINSCK.OCX (C:\Windows\System32) com o programa. Se continuar a não dar, experimenta ir à linha de comandos naquela pasta e escrever "regsvr32 mswinsck.ocx".
     
  9. WinAce_Boy

    WinAce_Boy Power Member

    ok...vou tentar isso, depois dou noticias ;)
     
  10. flaviorodrigues

    flaviorodrigues Power Member

    agtora e que vi isto, ha uns anios fiz algo assim e permiitia mais que 1 cliente ao mesmo tempo ligado, por norma ate estava clientes ilimitados!

    Eu nao sei se ainda tenho isto por ca, mas posso tentar aranjar, que o meu prof e capaz ainda de ter.
     
  11. WinAce_Boy

    WinAce_Boy Power Member

    andei a exprimentar meu chat nos computadores da minha escola e mesmo depois de pôr o winsock.ocx na pasta system32 e regista-lo continua a dar exactamente o mesmo erro......... o que faço? preciso de ter este problema solucionado até porque o meuy projecto para a PAP utiliza o contolo winsock e se não funcionar será um grande problema!!

    ajudem pf
    abraços
     
  12. ribeiro55

    ribeiro55 Power Member

    Podes, alternativamente, colocá-lo na mesma localização do executável.
    Isto se o erro que te dá tem alguma coisa a haver com o winsock.
    Para correr executáveis VB6 tens de andar com msvbm60.dll e comcat.dll (se não me falha a memória) atrás, no mínimo.
    Neste caso, para além deste precisas do ocx ou dll ou wtv do winsock. (já agora, se bem me lembro, não se chamava winsock.ocx. Era algo do tipo mswsck.ocx ou coisa assim parecida.
    Quando o adicionaste à toolbar, verifica a localização do gajo que está lá descriminada.
     
  13. WinAce_Boy

    WinAce_Boy Power Member

    Boas ribeiro55 muito obrigado pela tua util resposta.

    aqui esta o que ja tentei nos pcs da mha escola que é exactamente onde quero executar o chat:

    Winsck.ocx -> ja o pus no directorio system32 e registei-o com o directorio completo tipo: c:\windows\system32\winsck.ocx e nao funcionei. experimentei tambem po-lo no directorio da aplicação e regista-lo, o resultado é o mesmo - da-me um erro ao registar.

    Também ja andei com o msvbm60.dll, comcat.dll e até mesmo com o MSCOMCT2.OCX e nada é como se não existissem. Apesar de ter exprimentado por o comcat no dir da aplicação em dois pc vista sem vb e ter funcionado mas apenas num. mas nos da escola nada....

    obrigado pela atenção
    abraços
     
  14. ribeiro55

    ribeiro55 Power Member

    Em Vista?
    Exprimenta correr a aplicação com direitos de administração.

    Ia jurar que o Winsock não era Winsck.ocx, mas Mswinsck.ocx. Exprimenta fazer um search no teu PC por ele e incluí-o na pasta.
     
  15. WinAce_Boy

    WinAce_Boy Power Member

    tens razao é mswinsck.ocx.
    depois digo-te qualquer coisa ;)
     

Partilhar esta Página