IceRhal : Effectivement j'étais tombé aussi sur le DataInputStream, je vais peut être me renseigner plus su celui ci effectivement s'il a déjà des correspondances pour le read, car la j'ai besoin du readUTF pour un packet concernant les messages dans dofus.
harkhann : Merci je vais regarder sa de suite :)
Merci à tous de vos commentaires
Edit :
Pour ce qui est du reatInt() du DataInputStream il ne me donne pas le bon résultat contrairement à new new BigInteger(packet).intValue()
Je n'arrive pas à lire le contenu d'un message.. :
packet concerné 850 et 851 (test sur les messages privés)
851: receiver=cou je m appel g -> 850: content=MV
Le problème est que je ne connais pas la taille du message qui est contenu, la taille du pseudo peut varier, la taille du mesage reçu/envoyé aussi, comment gérer ce cas ?
public String read_utf(int length){
ByteArrayInputStream bais = new ByteArrayInputStream(_data, _cpt, _cpt+length);
byte[] data = read(bais);
_cpt = _cpt + length;
return new String(data, StandardCharsets.UTF_8);
}
package com.ankamagames.dofus.network.messages.game.chat;
import io.DataReader;
public class ChatClientPrivateMessage extends ChatAbstractClientMessage {
public static final int PROTOCOL_ID = 851;
public String receiver;
public ChatClientPrivateMessage() {
super();
}
public void deserialize(DataReader reader) {
super.deserialize(reader);
this.receiver = reader.read_utf(8);
}
public String toString() {
return PROTOCOL_ID + ": receiver=" + this.receiver + " -> " + super.toString();
}
}
package com.ankamagames.dofus.network.messages.game.chat;
import io.DataReader;
public class ChatAbstractClientMessage {
public static final int PROTOCOL_ID = 850;
public String content;
public ChatAbstractClientMessage() {
}
public void deserialize(DataReader reader) {
this.content = reader.read_utf(8);
}
public String toString() {
return PROTOCOL_ID + ": content=" + this.content;
}
}