Bonjour,
J'ai une petite question concernant le type VarInt, en effet il se trouve que dans mon message il y a des bytes à 00, et j'aimerai savoir comment ils sont interprété lors de la lecture, voici un exemple :
8e6e000c00467ded0200468a011f00467c0a0046a203060046d201050046a001050046f10504004673030046d40102004
La structure est la suivante : GID ITEM | EFFECT LEN |EFFECT | UID ITEM | QUANTITEE
GID ITEM est un VarInt, on a (8e6e00)16 = (1000 1110 0110 1110 0000 0000)2
Là, le décode du VarInt fait qu'on s'arrête au deuxième byte, donc le "GID ITEM" est égal à (8e6e)16 (enfin il faut toujours décoder ce VarInt).
Le problème c'est que là il est un byte à 00 entre le "GID ITEM" et "EFFECT LEN" : On effet on a les deux bytes suivants : (000c)16 = (0000 0000 0000 1100)2
Sauf que là, vu que le bit de point fort du premier byte est à 0, on est censé arrêter la lecture du VarInt au premier byte, ce qui nous donnerait une longueur d'effet de 0 au lieu de 12 .. Donc que faut-il faire ? Ignorer les bytes à 00 ? Pourquoi sont-il présent dans ce cas ? C'est assez étrange :x
Merci de votre aide !