Résolu Problème lecture/écriture Java

Inscrit
8 Septembre 2017
Messages
36
Reactions
8
#1
Bonjour à tous voilà j'ai commencé l'architecture de mon émulateur 2.10 en JAVA.
Je tiens à vous remercie pour tous les sujets/tutaux qui m'aident énormément !

Seulement j'ai un problème lié au protocole voici le code d'envoie (phase de test donc aucune fonction)

Java:
IoBuffer input = IoBuffer.allocate(1024);
        input.order(ByteOrder.BIG_ENDIAN);
        input.putInt(1492);
        input.putInt(1491);
        input.flip();
        byte[] array = input.array();
        IoBuffer output = IoBuffer.allocate(1024);
        output.order(ByteOrder.BIG_ENDIAN);
        output.putShort((short)(1<<(byte)2|2));
        output.put((byte)2);
        output.putShort((short)array.length);
        output.put(input);
        output.flip();
        session.write(output);
J'ai correctement respecté, du coup j'envoie ceci :
sended >> HeapBuffer[pos=0 lim=13 cap=1024: 00 06 02 04 00 00 00 05 D4 00 00 05 D3]

J'ai fait exprès de me tromper dans les versions du ProtocolRequired car logiquement le client devrait m'envoyer un paquet disant que le protocolRequired ne correspond pas.
Voilà ce qu'il me répond :

received << HeapBuffer[pos=0 lim=4 cap=2048: 02 D9 01 01]

(Je prend 02D9 qui correspond à : 1011011001 hors lorsque l'on retire les 2 bites de droite : 10110110 ce qui correspond à l'ID 182, je ne comprend pas pourquoi il m'envoie ça ..

J'espère que vous saurez m'aider, pvrcequ'il est assez frustrant de bloquer à se niveau la ..

Merci à vous ! :)
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#2
Normalement après avoir send le ProtocolRequired, tu essayes de te connecter et tu dois recevoir un IdentificationMessage si tu le reçois c'est bon
Sinon pour le message 182 comme dit dans un autre post c'est le BasicPingMessage même si c'est bizarre car j'ai jamais reçu ce message à ce stade là
 
Inscrit
8 Septembre 2017
Messages
36
Reactions
8
#3
Normalement après avoir send le ProtocolRequired, tu essayes de te connecter et tu dois recevoir un IdentificationMessage si tu le reçois c'est bon
Sinon pour le message 182 comme dit dans un autre post c'est le BasicPingMessage même si c'est bizarre car j'ai jamais reçu ce message à ce stade là
Tout à fait d'accord sauf que je ne reçois pas se message, je voulais savoir si ce que j'ai envoyé était bien correct et que j'avais bien compris le protocole ? :sended >> HeapBuffer[pos=0 lim=13 cap=1024: 00 06 02 04 00 00 00 05 D4 00 00 05 D3]
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#4
Le problème c'est surement les deux bytes 02 04 c'est censé être la size de ton packet ici et là ça ne correspond pas du tout, pour ma part le protocolRequired j'ai ça
00 05 08 00 00 04 8D 00 00 04 8D
00 05 = L'id du packet 1
08 = La size du packet
00 00 04 8D 00 00 04 8D = Content du packet et qui fait bien 8 byte de long

Du coup ta un décalage aussi de deux bytes
 
Inscrit
8 Septembre 2017
Messages
36
Reactions
8
#5
Le problème c'est surement les deux bytes 02 04 c'est censé être la size de ton packet ici et là ça ne correspond pas du tout, pour ma part le protocolRequired j'ai ça
00 05 08 00 00 04 8D 00 00 04 8D
00 05 = L'id du packet 1
08 = La size du packet
00 00 04 8D 00 00 04 8D = Content du packet et qui fait bien 8 byte de long
J'ai en effet récupérer la taille d'un tableau binaire créé à partir de mon buffer qui me retournait 1024 en taille (logique) j'ai du récupérer la limite de mon buffer et c'est niquel !
Merci beaucoup :)
 
Dernière édition:
Haut Bas