Enboule
Messages postés2Date d'inscriptionvendredi 28 octobre 2011StatutMembreDernière intervention27 juin 2012
-
27 juin 2012 à 13:08
Utilisateur anonyme -
27 juin 2012 à 19:08
Bonjour à tous,
Petit problème qui a du être traiter 10 fois déjà mais je cherche sur le web et sur ce site et je trouve pas de réponse a mon problème...
Lorsque je communique avec un serveur j'envoi une requête et ce dernier me répond. Sauf que la réponse n'est pas complète ...
Voici la chaîne que je devrais récupérer :"0008OKDATA1 0016SESSIONID#11024 "
et Voici la chaîne que je récupère a la place : "0008OKDATA1 "
Le reste de la chaîne de caractère ( " 0016SESSIONID#11024 " ) se retrouve dans le buffer et à la prochaine requête je la récupère ...
je sais pas si je me suis bien exprimer mais voici le code :
Dim myCompleteMessage As StringBuilder = New StringBuilder()
Dim numberOfBytesRead As Integer = 0
Dim myReadBuffer(4096) As Byte
'Lecture de la réponse serveur
If soc.GetStream().CanRead Then
Do
numberOfBytesRead = soc.GetStream().Read(myReadBuffer, 0, myReadBuffer.Length)
myCompleteMessage.AppendFormat(Nothing, Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead))
Loop While soc.GetStream().DataAvailable
End If
TransfertStr = myCompleteMessage.ToString()
En gros le système capte que le message est terminé alors qu'il reste encore des octets qui arrivent du serveur.
Enboule
Messages postés2Date d'inscriptionvendredi 28 octobre 2011StatutMembreDernière intervention27 juin 2012 27 juin 2012 à 13:10
J'ai oublier de dire que avec une petite tempo de 500 ms avant le read, tout marche bien ... mais le but est de supprimer cette tempo pour que l'échange aille plus vite
Voici la chaîne que je devrais récupérer :
"0008OKDATA1 0016SESSIONID#11024 "
Quel est le code ascii du caractère 'vide' après ..TA1 dans cette chaîne ?
On pourrait croire qu'il s'agit d'un espace mais ce n'en est pas un car ton code semble correct.