Es el evento DataArrival del socket, ahí es donde se reciben los datos, te explico brevemente aunque este código es demasiado cutre.
Código: Seleccionar todo
Dim data As String ' Declaramos la var.
wS(Index).GetData data ' Guardamos los datos recibidos en la var.
DatosTemporales = DatosTemporales & data 'Aquí pasamos un buffer a la var y guardamos los datos.
If Right(DatosTemporales, 1) = Chr(0) Then 'Aquí comprobamos que haya un espacio nulo
While InStr(DatosTemporales, Chr(0)) 'Aquí hacemos un bucle con la condición de que encuentre el espacio nulo dentro de la cadena
'Aqui pasamos a parsear los datos.
Dim tempo As String
tempo = Mid$(DatosTemporales, 1, InStr(DatosTemporales, Chr(0)) - 1)
DatosTemporales = Mid(DatosTemporales, InStr(DatosTemporales, Chr(0)) + 1)
Debug.Print "[" & Index & "] << " & tempo
ProcesaDatos tempo, Index
Wend
DatosTemporales = "" ' Limpiamos el buffer
End If
Se podría hacer algo mas bonito como esto:
Código: Seleccionar todo
Dim sDatos As String
Dim sInfos() As String
Call WS(Index).GetData(sDatos) 'Guardamos la respuesta en la var
sInfos() = Split(sDatos, "|") ' Cortamos los datos y guardamos en un array
Despues ya se puede usar por ej. la condicional "Select Case" y así organizar los datos.
Saludos.