J'ai une fonction int2stringBin() qui me transforme un int en String codée en binaire.
Je lui passe en paramètre la valeur de l'int et la longueur de la String à générer.
Ensuite, je parse cette String en Byte pour pouvoir mettre le tout dans un OutputStream d'un socket TCP.
Voici la partie du code qui foire :
Je met 0 à 8 comme indice sur la String car la création de la substring a besoin de l'indice juste apres la dernière valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 myString16 = DNSQuery.int2stringBin(id,16); System.out.println (myString16); mySubString = myString16.substring(0,8); System.out.println(mySubString); queryFrameByte[1]= Byte.parseByte(mySubString, 2); mySubString = myString16.substring (8,16); System.out.println(mySubString); queryFrameByte[2]= Byte.parseByte(mySubString, 2); System.out.println(queryFrameByte[1]); System.out.println(queryFrameByte[2]);
J'obtiens dans la console :
1111111111111111
11111111
java.lang.NumberFormatException
at java.lang.Byte.parseByte(Byte.java:153)
at browser.DNSQuery.QueryBuilder(DNSQuery.java:101)
at browser.DNSQuery.DomainNameQuery(DNSQuery.java:181)
at browser.SocketManager.run (SocketManager.java:60)
Il y a donc un problème au niveau du parsage. Mais je ne vois vraiment pas où c'est vu que juste avant, je vois que j'ai bien 8bit et donc un octet (Byte).
Merci d'avance pour votre aide.
Partager