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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
"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
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