Fantastique, exactement ce que je cherchais désespérement !
Je valide de suite, une réponse claire et concrète, je ne pouvais rêver mieux, merci beaucoup Foliv57
Cela dit, j'ai encore une toute petite question car je rencontre un léger souci avec reader.readstring sur la structure suivante:
Structure du paquet sur lequel je travaille:
(int32)(byte)(byte)(byte)(string)(int32)(float32)
Mon code qui pose problème:
Dim Entete As Integer = reader.ReadInt32()
Dim TypeRequest As Byte = reader.ReadSByte()
Dim NumUsers As Byte = reader.ReadSByte()
Dim userid As Byte=reader.readbyte()
Dim userpseudo As String = reader.readstring()
Dim userflag As Integer=reader.readint32()
Dim usertime As Long=reader.readsingle()
Le reader.readstring() stocke dans ma variable userpseudo tout le reste du paquet, du coup userflag et usertime ne peuvent plus avoir de valeur et ça plante le programme. Cependant j'ai remarqué qu'à la fin de chaque pseudo, il y avait un caractère spécial chr(10) (retour chariot sauf erreur), alors j'ai résolu le bogue de la façon suivante :
Dim Entete As Integer = reader.ReadInt32()
Dim TypeRequest As Byte = reader.ReadSByte()
Dim NumUsers As Byte = reader.ReadSByte()
Dim userid As Byte=reader.readbyte()
Dim userpseudo as string = ""
Dim trouve As Boolean = False
Dim c As Char
While trouve = False
c = reader.ReadChar()
If c <> Chr(0) Then
userPseudo = userPseudo + c
Else
trouve = True
End If
End While
Dim userflag As Integer=reader.readint32()
Dim usertime As Long=reader.readsingle()
A tout hasard, y'a-t-il une meilleure façon de faire que mon bidouillage ?