TCP Client

Le
AlexC
Bonjour tout le monde,

Alors voilà, dans une de mes applications je dialogue avec un serveur via
une connection TCP. Un seul soucis se pose, je ne recois pas les caractères
CRLF !

Voici un bout de mon code :

Dim DatasReceiver As NetworkStream
Dim ReadBuffer(1024) As Byte
Dim Message As String
Dim NumberOfBytesRead As Integer

DatasReceiver = ConnectionTCP.GetStream()
NumberOfBytesRead = 0
If DatasReceiver.CanRead = True Then

Do
NumberOfBytesRead = DatasReceiver.Read(ReadBuffer, 0,
ReadBuffer.Length)
Message = Encoding.ASCII.GetString(ReadBuffer, 0,
NumberOfBytesRead)
Loop While DatasReceiver.DataAvailable

RaiseEvent DataReceived(Message)
MessageQueue.Enqueue(Message)
End If

Normalement à la fin de chaques messages envoyés par le serveur il doit y
avoir les caracteres CRLF, mais là ils ne sont pas dans la chaine de
caractere.

Une idée ?

Merci d'avance pour vos réponses !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Behemoth
Le #12262621
"AlexC" a écrit :

Bonjour tout le monde,

Alors voilà, dans une de mes applications je dialogue avec un serveur via
une connection TCP. Un seul soucis se pose, je ne recois pas les caractères
CRLF !

Voici un bout de mon code :

Dim DatasReceiver As NetworkStream
Dim ReadBuffer(1024) As Byte
Dim Message As String
Dim NumberOfBytesRead As Integer

DatasReceiver = ConnectionTCP.GetStream()
NumberOfBytesRead = 0
If DatasReceiver.CanRead = True Then

Do
NumberOfBytesRead = DatasReceiver.Read(ReadBuffer, 0,
ReadBuffer.Length)
Message = Encoding.ASCII.GetString(ReadBuffer, 0,
NumberOfBytesRead)
Loop While DatasReceiver.DataAvailable

RaiseEvent DataReceived(Message)
MessageQueue.Enqueue(Message)
End If

Normalement à la fin de chaques messages envoyés par le serveur il doit y
avoir les caracteres CRLF, mais là ils ne sont pas dans la chaine de
caractere.

Une idée ?

Merci d'avance pour vos réponses !





Moi j'ai utlisé plutôt :
Message = Encoding.UTF8.GetString(ReadBuffer, 0,
NumberOfBytesRead)
Maintenant je ne sais pas si cela est la solution (VB est en UTF8 me
semble-t-il)
et tout mes messages ont une fin détectable (cr-lf) par exemple, car on est
pas assuré d'avoir tout le message en une fois, même si il a été envoyé en
une fois
cordialement
Publicité
Poster une réponse
Anonyme