bonjour,
Je suis en train de développer une application bluetooth, un "client" en J2ME sur un téléphone portable et le "serveur" en java SE sur mon ordinateur portable.
Je souhaite envoyé un message du serveur au client. Malheureusement mon code est bugué. L'application cliente freeze à la réception du message sauf si j'utilise une 2ème fois la méthode sendMessage avec un string aléatoire :
Partie client qui doit recevoir le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String line = readData(); textField.setString(line);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public String readData() { byte[] data = null; try { int len = in.read(); if (len <= 0) { return null; } data = new byte[len]; len = 0; while (len != data.length) { int ch = in.read(data, len, data.length - len); if (ch == -1) { return null; } len += ch; } } catch (IOException e) { System.out.println("readData(): " + e); return null; } return new String(data); }
Partie Serveur qui envoie le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //sendMessage("test");//si je décommente cette ligne le client ne freeze plus sendMessage(msg);Quelqu'un saurait t-il d'où provient ce bug ? Y a t-il une autre méthode pour l'envoi et la réception de String plus adapté ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public boolean sendMessage(String msg) { System.out.println("sendMessage: " + msg); try { out.write(msg.length()); out.write(msg.getBytes()); out.flush(); return true; } catch (Exception e) { System.out.println("sendMessage(): " + e); return false; } }
Merci d'avance
edit : résolu : l'erreur venait d'une autre partie du code![]()
Partager