salut,
si le State est <> sckConnected alors de toute manière, rien de déclanche l'évènement arrival.
tu dois finir tes message par un séparateur personnel (disons
"[###SEPAR_FIN###]" en constante sSepar) et ajouter mais avec une
static, sinon à la sortie du Sub, Donnee est réinitialiée
Option Explicit
Const sSepar As String = "[###SEPAR_FIN###]"
'
'
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim partieDonnees As String
Static Donnees As String
Winsock1.GetData partieDonnees
Donnees = Donnees & partieDonnees
If Right$(Donnees, Len(sSepar)) <> sSepar Then
Exit Sub
Else
partieDonnees = Donnees
Donnees = ""
End If
' et la suite de ton code ici, en travaillant sur "partieDonnees"
End Sub

Coloration
syntaxique automatique [AFCK]
et ne pas oublier d'envoyer le separateur, cotés client et serveur, à chaque SendData
++
PCPT [AFCK]