USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Enviar mensagens para um grupo via winsock
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 24/02/2005 10:14 hs            
Bom dia amigos.
 
Quando uso os cmdConectar e o CmdEnviar a mensagem é enviada com sucesso.
 
Dim i As Integer
Private Sub cmdConectar_Click()
    wskClienteGrupo.Close
    wskClienteGrupo.RemoteHost = "192.168.1.1"
    wskClienteGrupo.RemotePort = 1234
    wskClienteGrupo.Connect
End Sub
 
Private Sub cmdEnviar_Click()
    wskClienteGrupo.SendData "Teste+"
End Sub
 
 
'--------------------------------------------------
' Quando tento conectar e enviar ao mesmo tempo ocorre o 40006
 
Private Sub cmdConectarEnviar_Click()
    wskClienteGrupo.Close
    wskClienteGrupo.RemoteHost = "192.168.1.1"
    wskClienteGrupo.RemotePort = 1234
     wskClienteGrupo.SendData "Teste+"
    wskClienteGrupo.Connect
End Sub
 
 
'Desta forma estou tentando usar o cmdConectar e o cmdEnviar, que se eu clicar primeiro no cmdconectar e depois no cmdEnviar, funciona
mas se eu tentar fazer desta forma ocorre o erro 40006
Private Sub cmdConectarEnviar2_Click()
    cmdConectar_Click
    cmdEnviar_Click
End Sub
 
 
 
'A minha intenção enviar a mensagem para um grupo, como esta abaixo.
Private Sub cmdEnviarGrupo_Click()
    For i = 1 To 50
        wskClienteGrupo.Close
        wskClienteGrupo.RemoteHost = "192.168.1." & i
        wskClienteGrupo.RemotePort = 1234
        wskClienteGrupo.SendData "Teste+"
        wskClienteGrupo.Connect
    Next
End Sub
 
O erro 40006 tem a seguinte descrição.
"Wrong protocol or connection state for the requested transaction or request"
 
     
Righi
BELO HORIZONTE
MG - BRASIL
Postada em 24/02/2005 18:54 hs            
Tekki, acho que se você mandar o winsock conectar antes de enviar ele vai funcionar:

        wskClienteGrupo.Connect
    wskClienteGrupo.SendData "Teste+"
 
outra solução, é mandar o winsock conectar e no evento : Connect, envie a mesnagem.
Deu pra pegar??
qq coisa, tamos ai...

EmoçõesRighiEmoções

Beginner Game Developer!

duduchaves@uai.com.br

     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 25/02/2005 09:10 hs         
O erro parece ser esse mesmo. Mas e se os clientes quiserem mandar msg de volta? Posso te mandar uns exemplos bem bacanas de como usar conexões múltiplas em uma única porta( port sharing)
 
     
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 25/02/2005 09:55 hs            
Dim i As Integer
Private Sub cmdConectar_Click()
    wskClienteGrupo.Close
    wskClienteGrupo.RemoteHost = "192.168.1.1"
    wskClienteGrupo.RemotePort = 1234
    wskClienteGrupo.Connect
    MsgBox wskClienteGrupo.State
End Sub
 
Private Sub cmdEnviar_Click()
    wskClienteGrupo.SendData "Teste+"
End Sub
 
 
'--------------------------------------------------
' Quando tento conectar e enviar ao mesmo tempo ocorre o 40006
 
Private Sub cmdConectarEnviar_Click()
    wskClienteGrupo.Close
    wskClienteGrupo.RemoteHost = "192.168.1.1"
    wskClienteGrupo.RemotePort = 1234
    wskClienteGrupo.Connect
     wskClienteGrupo.SendData "Teste+"
    MsgBox wskClienteGrupo.State
End Sub
 
 
'Desta forma estou tentando usar o cmdConectar e o cmdEnviar, que se eu clicar primeiro no cmdconectar e depois no cmdEnviar, funciona
mas se eu tentar fazer desta forma ocorre o erro 40006
Private Sub cmdConectarEnviar2_Click()
    cmdConectar_Click
    cmdEnviar_Click
End Sub
 
 
 
'A minha intenção enviar a mensagem para um grupo, como esta abaixo.
Private Sub cmdEnviarGrupo_Click()
    For i = 1 To 50
        wskClienteGrupo.Close
        wskClienteGrupo.RemoteHost = "192.168.1." & i
        wskClienteGrupo.RemotePort = 1234
        wskClienteGrupo.Connect
        wskClienteGrupo.SendData "Teste+"
        MsgBox wskClienteGrupo.State
    Next
End Sub
 
O erro 40006 tem a seguinte descrição.
"Wrong protocol or connection state for the requested transaction or request"
 
 
 
 
State = 0 -> Closed
State = 1 -> Open
State = 2 -> Listening
State = 3 -> connection pending
State = 4 -> resolving host
State = 5 -> host resolved
State = 6 -> connecting
State = 7 -> connected
State = 8 -> peer is closing the connection
State = 9 -> error
 
 
Amigos o erro não é a posição do conect, vocês estão certo pois ele tem de vir antes do send mas no meu sistema esta correto o problema foi só aqui não hora de gerar o post eu digitei errado.
Adicionei um msgbox para que vocês vejam o Status da conexão.
Kerplunk o meu chat já esta pronto, já envia e recebe mensagens sem problemas só não consigo fazer um Loop para enviar para um grupo, mas se você puder gostaria de receber os seus exemplo sim.
Obrigado.
     
7Cordas
PORTO ALEGRE
RS - BRASIL
Postada em 25/02/2005 11:02 hs            
as 50 maquinas existem na rede? Caso não exista ele não vai ter onde conectar e  vai dar erro de protocolo....
 
Outra possibilidade é que não está dando tempo de o winsock conectar ... Eu já passei por isso e tive que fazer uma rotina de timeout...
 
Private Sub cmdEnviarGrupo_Click()
    For i = 1 To 50
        wskClienteGrupo.Close
        wskClienteGrupo.RemoteHost = "192.168.1." & i
        wskClienteGrupo.RemotePort = 1234
        wskClienteGrupo.Connect
       tempo = timer
       Do While wskClienteGrupo.State  <> sckConnected
                if (Timer - Tempo) >= 60 then
                          MsgBox "Tempo esgotado!"
                          exit sub
               End IF       
        Loop
        wskClienteGrupo.SendData "Teste+"
        MsgBox wskClienteGrupo.State
    Next
End Sub
 
espero que tenhas entendido a idéia
 

Cristiano Fischer
Projeto SIGA - Sistemas Integrados de Gestão
     
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 25/02/2005 11:44 hs            
Caro 7Cordas, as máquinas existem sim e ambas com os seus IP.
Quanto a não dar tempo para o winsock conectar eu já havia pensado nisto, já tentei segurar com um For com Sleep mas até agora nada, entretanto acho que o problema deve ser este. Só não estou sabendo como resolve-lo. Emoções
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página