Deberías hacer en paralelo el proyecto con el winsock, para poder descartar tipo de errores, me acuerdo hace años que usé el CSocketmaster y se tenía inlcuso de hacer algúnas modificaciónes...vaya sudé sangre.
Por otra parte, piensa esto:
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
On Error GoTo Error
Dim datos As String
WS.GetData datos
If datos = "prueba" Then
MsgBox "funciona!!"
End If
Error:
MsgBox "error en transmisión de datos"
End Sub
Segun lo que has puesto, si datos = prueba la conexión es correcta, hasta aí bien, pero no se hasta que punto, lo del error de transmisión de datos te funcionaria, ya que si en el envio de datos no hay conexión, ese código nunca llegara a fallar ya que está en el servidor.
Haber si me hago entender, si el cliente no llega a mandar un dato, el servicor no podra saber por arte de magia que la conexión a fallado y avisarte.