Envoi de String bluetooth
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:
1 2 3
|
String line = readData();
textField.setString(line); |
Code:
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:
1 2 3
|
//sendMessage("test");//si je décommente cette ligne le client ne freeze plus
sendMessage(msg); |
Code:
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;
}
} |
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é ?
Merci d'avance
edit : résolu : l'erreur venait d'une autre partie du code :oops: