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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Eventos Winsock dentro de uma Classe
Manigni
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/05/2010 14:49 hs         
Olá pessoal, boa tarde;

Estou desenvolvendo um aplicativo servidor e, para que ele siga corretamente o projeto, preciso que meu componente Winsock seja instanciado dentro de uma Classe.
Inseri um form em branco apenas com o componente Winsock e na classe criei o objeto desta forma:

Dim wSock As Winsock

E na Initialize da Classe fiz um "set":

Set wSock = Form1.Winsock1

E especifiquei o evento "ConnectionRequest", desta forma:

Private Sub wSock_ConnectionRequest(ByVal requestID As Long)
    Load wSock
    wSock.LocalPort = 1007
    wSock.Accept requestID
End Sub

Até aí tudo OK, o objeto Winsock é reconhecido e passa a "escutar" a porta que eu defini, como 1007. O problema é que, quando o cliente faz a requisição de conexão, o evento ConnectionRequest não é disparado dentro da minha classe onde está o objeto wSock... mas sim no Form1, onde está o componente Winsock.
É como se ele ignorasse o novo objeto e passasse a trabalhar apenas com os eventos do componente do Form1.

Preciso que ele dispare os eventos na classe.

Alguém poderia ajudar?

Obrigado!
   
Manigni
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 18/05/2010 08:18 hs         
Pra quem interessar, achei uma boa solução:

No caso do Winsock, não é necessária a utilização do ".ocx" inserido diretamente no form. O que pode ser feita é uma referência à "dll" no momento de declarar, desta forma:

Private WithEvents wSock As MSWinsockLib.Winsock

Neste caso todos os eventos Winsock serão disparados normalmente. Depois crie o objeto, no caso abaixo eu utilizei na "Initialize" da minha classe:

Private Sub Class_Initialize()
On Error GoTo erro

    Set wSock = New MSWinsockLib.Winsock

Exit Sub
erro:
    MsgBox oRetorno.GetErro(1)
End Sub

Desta forma não é preciso acrescentar o 'Microsoft Winsock Controls' na área de componentes do seu projeto.

Abraços!

   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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