Byte en string

Résolu
nataS22 Messages postés 66 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 28 février 2005 - 3 août 2004 à 10:48
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 - 3 août 2004 à 14:51
Bonjour à tous,

J'ai un problème de conversion de données. Je reçoit des données sous la forme de byte et j'aimerai convertir le résultat et String. Mais si j'utilise le

data.getData().toString il me sort une phrase du style : [B@6b97fd

qu'est ce que je peux faire ?????????

7 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
3 août 2004 à 11:22
byte[] data=new byte[...];
InputStream s=...;
int l=s.read(data);
String s=new String(data,0,l);
3
nataS22 Messages postés 66 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 28 février 2005
3 août 2004 à 14:33
En fait il fallait faire un décalage de 2

String s=new String( data ,2 , data.getLength () );

Merci pour tout.

@++
3
nataS22 Messages postés 66 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 28 février 2005
3 août 2004 à 11:44
Merci mais maintenant cela n'affiche plus rien, voici mon code :

public class Principal {

public static final int PORT = 69;
final static int taille = 4096;
final static byte buffer[] = new byte [taille];

public static void main(String argv[]) throws Exception
{
DatagramSocket socket = new DatagramSocket( PORT );

System.out.println ( "Création d'une socket d'écoute de datagramme " );

while(true)
{
System.out.println ( "Attente d'un nouveau Datagramme." );
DatagramPacket data = new DatagramPacket ( buffer, buffer.length );
socket.receive ( data );
System.out.println ( "Nouveau Datagramme recu par la carte : " + data.getAddress() + "\nprovenant du port : " + data.getPort() );

String s = new String ( buffer, 0, taille );

System.out.println ( "Données stockées dans le paquet : " + s );
socket.send ( data );
}
}
}

En fait si tu te souvient de la question d'hier sur le serveur TFTP, c le début du code pour la reception des trames émisent par ma carte.

Or, la carte envoie un message que je récupère avec un sniffer de réseau sur son adresse du style :

11:41:11.192299 IP 192.168.1.10.31200 > 192.168.1.3.69: 29 RRQ "/Groupe1/glasses.wav" octet
0x0000 0000 e23f 4a0b 0040 f41c 984a 0800 4500 ...?J..@...J..E.
0x0010 0039 2059 0000 6411 b2fd c0a8 010a c0a8 .9.Y..d.........
0x0020 0103 79e0 0045 0025 b7d2 0001 2f47 726f ..y..E.%..../Gro
0x0030 7570 6531 2f67 6c61 7373 6573 2e77 6176 upe1/glasses.wav
0x0040 006f 6374 6574 00 .octet.

Je devrai theoriquement recupérer une trame de ce genre, mais rien....
la trame est bien reçue par le serveur mais je ne peux pas la lire.
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
3 août 2004 à 12:00
1er heresie, vire le throws Exception du main!!!!!!

sinon String s=new String(data.getData());

en fait buffer est ici 00 00 e2 .... bref la chaine de caractere est "".

le data.getData doit resortir le /Groupe1/glasses.wav
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nataS22 Messages postés 66 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 28 février 2005
3 août 2004 à 12:15
Désolé pour le throw Exception du main c'était pour eviter d'avoir des try catch partout. Maintenant j'en ai partout.

malheureusement j'avais déjà essayé avec le data.getData () et quand je fait

String s=new String(data.getData()); je reçoit toujours une chaine Vide.

Je suis vraiment désolé de te faire chier comme ça tous les jours mais je doit bien avouer que tu m'auras beaucoup aidé depuis le début de ce projet. Je t'en remercie même si on ne trouve pas la solution à ce problème.
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
3 août 2004 à 13:23
fait un system.out.println(data.getData().length); pour voir si il capture bien qqchose.
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
3 août 2004 à 14:51
alos, a la prochaine .... question :)
0
Rejoignez-nous