Tout ce qui est lu, pas seulement les readbytes.
Un overflow arrive quand tu ne lis pas quelquechose correctement.
En gros ta lecture devient décaler à un moment donner, c'est pour ca que tu n'a pas asser de bytes pour tout lire dans le message que tu recoit.
Il y a trois causes prédominantes à ce genre de problème:
-Tu saute une variable (alors tout devient décaler après l'endroit ou tu devrait lire la variable)
-Tu ne lis pas la bonne longueur (par exemple tu lis 4 bytes (int) au lieu de 2 (short)), alors après cette variable tout devient décaler.
-Tu ne prends pas en considération le ProtocolTypeManager. Par exemple, une erreur très commune que les gens font quand ils lisent l'inventaire est de tout lire les effets des objets comme un ObjectEffect, mais dépendemment du id tu peux lire ObjectEffectString, ObjectEffectDice, etc. qui sont tous de longueur variables (et différentes de ObjectEffect).