Ciao ragazzi ho ancora problemi con winsock.

Ho creato due classi VB, clsSockOut (per la trasmissione) e clsSockIn (per la ricezione).

In clsSockOut ho:
codice:
Private Const cpn_OUT_REM_PORT = 1500

Private vpsConnType      As String          ' tipo connessione corrente
Private vpsClient        As String          ' num di telefono o indirizzo IP
Private vpsPath          As String          ' path contenente i file da inviare/ricevere
Private vpoOutFiles      As New Collection  ' collection dei file da inviare
Private vpnFileHandleOut As Long            ' Handle del file da inviare (in trasmissione)
Private vpsFileOut       As String          ' Percorso del file da salvare


Private WithEvents vpoSockOut   As Winsock    ' socket trasferimento file
Private WithEvents vpoSockOutCn As Winsock    ' socket controllo trasferimento file

(...)

Private Sub Class_Initialize()
  (...)
  ' inizializzazione oggetti winsock
  Set vpoSockOutCn = New Winsock
  vpoSockOutCn.Protocol = sckTCPProtocol
  Set vpoSockOut = New Winsock
  vpoSockOut.Protocol = sckTCPProtocol
End Sub

(...)

Public Function Send() As Boolean
  Dim vsIPClient As String
  Dim vloItem As Variant
  
  ' crea l'elenco dei file
  fpoOutFiles vpoOutFiles, vpsPath
  ' imposta destinazione dei file
  vsIPClient = vpsClient
  
  With vpoSockOutCn
    ' connessione sock controllo (invio)
    If (.State <> sckClosed) Then .Close
    .LocalPort = 0
    .Connect vsIPClient, cpn_OUT_REM_PORT
    ' invio dei file
    For Each vloItem In vpoOutFiles
      ' il formato di invio è CMD:"/FILE" NAME:"nome del file da inviare" DIM:"dimensione"
      vpsFileOut = vpsPath & fpsGetAttr("NAME:", vloItem)
      If (.State <> sckConnected) Then Exit Function
      .SendData vloItem
    Next
  End With
End Function
In clsSockOut ho:
codice:
Private Const cpn_IN_LOC_PORT = 1500

Private vpsConnType      As String          ' tipo connessione corrente
Private vpsClient        As String          ' num di telefono o indirizzo IP
Private vpsPath          As String          ' path contenente i file da inviare/ricevere
Private vpnFileHandleIn  As Long            ' Handle del file da salvare (in ricezione)
Private vpsFileIn        As String          ' Percorso del file da salvare

Private WithEvents vpoSockIn    As Winsock    ' socket ricezione file
Private WithEvents vpoSockInCn  As Winsock    ' socket controllo ricezione file

Private Sub Class_Initialize()
  ' inizializzazione dei parametri
  (...)
  ' inizializzazione oggetti winsock
  Set vpoSockInCn = New Winsock
  vpoSockInCn.Protocol = sckTCPProtocol
  Set vpoSockIn = New Winsock
  vpoSockIn.Protocol = sckTCPProtocol
  ' setta socket ricezione controllo in ascolto
  With vpoSockInCn
    .LocalPort = cpn_IN_LOC_PORT
    .Listen
  End With
End Sub

Private Sub vpoSockInCn_ConnectionRequest(ByVal requestID As Long)
  With vpoSockInCn
    .Close
    .Accept requestID
  End With
End Sub

Private Sub vpoSockInCn_DataArrival(ByVal bytesTotal As Long)
  Dim vlvDati()   As Byte
  Dim vlsCmd      As String
  Dim vlnFileDim  As Long
  Dim vlsRisp     As String
  
  vpoSockInCn.GetData vlvDati
  vlvDati = StrConv(vlvDati, vbUnicode)
  vlsCmd = fpsGetAttr("CMD:", vlvDati)
  
  Select Case (vlsCmd)
    Case "/FILE"
      vpsFileIn = fpsGetAttr("NAME:", vlvDati)
      vlnFileDim = CLng(fpsGetAttr("DIM:", vlvDati))
      With vpoSockIn
        If (.State <> sckClosed) Then .Close
        .LocalPort = 0
        .Listen
        vlsRisp = "CMD:<+OK PORTA> PORTA:<" & .LocalPort & ">"
        vpoSockInCn.SendData vlsRisp
      End With
    Case Else
      ' comando non riconosciuto
  End Select
End Sub
Il funzionamento è questo:
Richiamando il metodo "Send" della classe clsSockOut io mi connetto al socket di ricezione con il metodo
.LocalPort = 0
.Connect vsIPClient, cpn_OUT_REM_PORT

di conseguenza scatta l'evento vpoSockInCn_ConnectionRequest sulla classe clsSockIn (su un'altro PC)
di seguito quando devo inviare dati tramite l'istruzione .SendData vloItem presente nella classe clsSockOut nel metodo Send l'evento vpoSockInCn_DataArrival non scatta come invece dovrebbe.

Dove sbaglio? Perchè a connetersi si connette ma ad inviare dati no?

Grazie, saluti.