Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TCP Client

1 réponse
Avatar
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 !

1 réponse

Avatar
Behemoth
"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