[VB6] Chat

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 ;)
 
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 ;)
 
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
 
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!
 
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
 
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
 
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".
 
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.
 
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
 
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.
 
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
 
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.
 
Back
Topo