C'est bien les 4 bytes du paquet suivant, BasicPongMessage en l’occurrence (ID = 183).
Paquet :
02 DD 01 01
Hi-header : 02 DD en hexadécimal ou 1011011101 en binaire.
Packet ID : on enlève les 2 bits de poids faible du hi-header, 10110111 ou 183 (donc BasicPongMessage).
Longueur de la taille du paquet : on ne garde que les 2 bits de poids faible du hi-header, 01 en binaire, donc 1 en décimal.
Taille du paquet : on lit 1 byte seulement (Longueur de la taille du paquet ci-dessus), 01 en hexadécimal, donc 1 en décimal.
Contenu du paquet : 1 seul byte à lire (Taille du paquet ci-dessus), 01 en hexadécimal (ça correspond à l'attribut "quiet" de BasicPongMessage qui est un bool, il vaut donc true dans le cas présent).
Et voilà, le paquet est complet.
Si tu as du mal avec la structure des paquets Dofus 2 je te conseille de lire le tutoriel Comprendre le protocole de D2.0 de bouh2, c'est très bien expliqué ;) .
Dans ton code tu dis certainement "je veux recevoir tout ce qui est disponible", par exemple :
byte[] buffer = new byte[tonSocket.Available];
tonSocket.Receive(buffer);
Mais "tout ce qui est disponible" ce n'est pas seulement le prochain paquet... c'est vraiment tout ce qu'a envoyé le serveur Dofus et qui est arrivé. Ainsi tu peux recevoir le paquet qui suit le message que tu veux lire en même temps ou bien la moitié, les 3/4... À toi de faire en sorte de ne lire que le paquet qui t'intéresse et de garder les octets suivants (qui appartiennent au(x) paquet(s) suivant(s)) pour plus tard.