Tout d'abord bonjour à tous. Je suis nouveau sur ce forum et également dans la communauté des développeurs android et comme première application, je me suis lancé dans le développement d'une télécommande pour le mediacenter freevo (pour ceux qui connaissent). Ce dernier peut-être contrôlé par le réseau, simplement en lui envoyant des paquets UDP.
Je vous donne d'abord mon code et je vous explique mes problèmes ensuite.
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 package freevo.remote; import android.app.Activity; import android.os.Bundle; public class FreevoRemote extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onStart() { new Thread(new Test()).start(); } }Alors ce code donc, fait planter mon application ... Le paquet est bien envoyé, pas de problème, mais l'application plante juste après l'envoi du paquet. De plus, pour une même occurence d'un serveur, je ne peux envoyer qu'une seule fois mon message. En effet, lorsque je relance l'application, elle plante toujours, mais cette fois sans envoi du message. Et si je redémarre le serveur, l'envoi du message se fait, mais une fois seulement, je dois redémarrer encore le serveur pour qu'il reçoive le message.
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
26
27 package freevo.remote; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Test implements Runnable { public void run() { int port = 1450; String ch = "Le message à envoyer"; int chl = ch.length(); byte[] message = new byte[chl]; message = ch.getBytes(); byte[] b = {(byte)192, (byte)168, (byte)0, (byte)6}; try { InetAddress address = InetAddress.getByAddress(b); DatagramPacket p = new DatagramPacket(message, chl, address, port); DatagramSocket s = new DatagramSocket(); s.send(p); } catch (Exception e) {} } }
Il n'y a pas de code au serveur, et pour cause, j'utilise netcat pour la partie serveur.
Mon objectif final serait donc que mon application arrête de planter et que je puisse envoyer des informations par un clic sur des boutons que j'ai déjà placés.
J'espère avoir été assez clair et je remercie d'avance ceux qui voudront bien m'aider.
Partager